Bash

更改使用者時出錯

  • July 28, 2022

每次我使用su myName更改我的使用者時,我總是會遇到這 3 個錯誤。

-bash: zstyle: command not found
-bash: autoload: command not found
-bash: compinit: command not found

僅在切換到普通使用者時才會發生。我該如何擺脫它?

系統:

  • 拱 x86_64
  • 終端:Bash(之前嘗試使用 zsh 但後來將其刪除)

編輯:bash在控制台中 執行時也會發生同樣的錯誤

如開始輸出的每一行的*-bash*su所示,已嘗試啟動登錄shell (1)。

也就是說,將讀取 /etc/profile、myName_Home_Dir/.bash_profile、myName_Home_Dir/.bash_login 和 myName_Home_Dir/.profile 並執行在其中找到的命令。

因此,我們可以假設zstyle,autoloadcompinit是無意中遺留在上述文件之一中的命令,如果以前使用另一個 shell,很可能是 /etc/profile 或 myName_Home_Dir/.profile 。


(1) 正如Gilles在以下評論中所指出的那樣,如果您實際上su myName按照您的說法su myName應該只啟動了一個互動式shell(而不是閱讀/etc/profileand中的說明myName_$HOME/.profile),那​​麼您就不應該是這種情況。因此,您幾乎可能要求明確觸發登錄 shell 的su - myName同義詞。su --login myName

引用自:https://unix.stackexchange.com/questions/711482