本文内容來自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: