每次我su myName
更改用户时,我总是会遇到这 3 个错误。
-bash: zstyle: command not found
-bash: autoload: command not found
-bash: compinit: command not found
仅当切换到普通用户时才会发生。我该如何摆脱它?
系统:
- 拱门 x86_64
- 终端:Bash(之前尝试使用 zsh,但后来将其删除)
编辑:bash
刚刚在控制台 执行时也会出现同样的错误
答案1
如图所示-bash开始输出的每一行,su
已尝试启动登录外壳 (1)。
也就是说,将读取 /etc/profile、myName_Home_Dir/.bash_profile、myName_Home_Dir/.bash_login 和 myName_Home_Dir/.profile,并执行在其中找到的命令。
因此,我们可以假设zstyle
、autoload
和compinit
是无意中遗留在上述文件之一中的命令,如果以前使用另一个 shell,很可能是 /etc/profile 或 myName_Home_Dir/.profile 。
(1) 正如指出的吉尔斯su myName
在下面的评论中,如果您实际上像您所说的那样,情况不应该是这样,因为su myName
应该只启动一个交互的shell(不阅读 和 中的说明/etc/profile
)myName_$HOME/.profile
。因此,您几乎可能要求,与显式触发登录 shellsu - myName
同义。su --login myName