Shell 的型別

登入 Shell

登入 shell 是其引數零的第一個字元是 - 或者以 -login 選項開頭的一個。初始化比普通的互動式(子)shell 更全面。

互動殼牌

互動式 shell 是在沒有非選項引數的情況下啟動的,沒有 -c 選項,其標準輸入和錯誤都連線到終端(由 isatty(3) 確定),或者以 -i 選項開頭。如果 bash 是互動式的,則設定 PS1 和$ - 包括 i,允許 shell 指令碼或啟動檔案測試此狀態。

非互動式 Shell

非互動式 Shell 是一個 shell,使用者無法在其中與 shell 進行互動。例如,執行指令碼的 shell 始終是非互動式 shell。同樣,指令碼仍然可以訪問它的 tty。

配置登入 shell

登入時:

If '/etc/profile' exists, then source it. 
If '~/.bash_profile' exists, then source it, 
else if '~/.bash_login' exists, then source it, 
else if '~/.profile' exists, then source it. 

對於非登入互動式 shell

啟動時:

If `~/.bashrc' exists, then source it.

對於非互動式 shell

啟動時:如果環境變數 ENV 為非 null,則展開變數並獲取由該值指定的檔案。如果 Bash 沒有在 Posix 模式下啟動,它會在 ENV 之前查詢 BASH_ENV。