From 26b54ac85de6d2079dc28deaea11251bdbee5fbf Mon Sep 17 00:00:00 2001 From: Akizon77 Date: Sun, 25 May 2025 13:58:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=8D=E4=BD=BF=E7=94=A8=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=98=E9=87=8F=E8=8E=B7=E5=8F=96shell?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terminal/terminal_unix.go | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/terminal/terminal_unix.go b/terminal/terminal_unix.go index cc69b4a..89ed2de 100644 --- a/terminal/terminal_unix.go +++ b/terminal/terminal_unix.go @@ -13,21 +13,18 @@ import ( ) func newTerminalImpl() (*terminalImpl, error) { - // 优先获取用户默认 shell - shell := os.Getenv("SHELL") - if shell == "" { - // 如果 SHELL 环境变量为空,尝试从 /etc/passwd 获取 - user, err := os.UserHomeDir() // 当前用户 + shell := "" + // 从 /etc/passwd 获取 + user, err := os.UserHomeDir() // 当前用户 + if err == nil { + passwd, err := os.ReadFile("/etc/passwd") if err == nil { - passwd, err := os.ReadFile("/etc/passwd") - if err == nil { - for _, line := range strings.Split(string(passwd), "\n") { - if strings.Contains(line, user) { - parts := strings.Split(line, ":") - if len(parts) >= 7 && parts[6] != "" { - shell = parts[6] - break - } + for _, line := range strings.Split(string(passwd), "\n") { + if strings.Contains(line, user) { + parts := strings.Split(line, ":") + if len(parts) >= 7 && parts[6] != "" { + shell = parts[6] + break } } }