天天看點

bash 類别簡述

本文内容來自man bash。

bash從不同角度看分為兩種,一種是是否登入(login),另一種是是否互動式(interactive)。

登入式shell是啟動時:

1. 第0個參數以“-”開頭

2. 或使用--login選項

互動式shell是啟動時:

1. 沒有非選項參數除非用使用了-s選項;

2. 并且沒有-c選項;

3. 并且input/outptu與terminal相連;

4. 并且用-i選項

兩種不同分法的shell有4種組合方式:

1. 互動登入式shell

2. 互動非登入式shell

3. 非互動登入式shell

4. 非互動非登入式shell

(如果相應檔案不存在就跳過)

退出時會執行:

在執行腳本時,回去找bash_env這個環境變量,并用這個環境變量的值作為腳本名執行

我的系統是debian,檢視相應檔案可以看到

一般來說,在~/.profile中會去source ~/.bashrc,也就是說我們平時配置環境是,直接在~/.bashrc中配置即可。

最後說一下如何檢測目前shell是否為互動式的

 determine within a startup script whether or not bash isrunning interactively,test the value of the ‘-’ special parameter.it contains<code>i</code> when the shell is interactive. for example: