1. 登錄非登錄和交互非交互式shell
用戶登錄時(輸入用戶名密碼後)啟動的shell是登錄shell,登錄後仍可使用bash --login來啟動一個登錄shell
用戶啟動shell用來解釋命令是交互式shell,啟動shell用來執行腳本是非交互時shell
2.非交互式shell的startup文件定義在BASH_ENV變量裡,一般為空。
3. 交互式登錄shell的startup文件是/etc/profile和依次查找~/.bash_profile, ~/.bash_login和~/.profile最先找到的那個。
4. 交互式非登錄shell的startup文件是~/.bashrc。 通常會在~/.bash_profile(或其他兩個文件)中調用~/.bashrc
測試的過程中發現父shell設置的alias不能傳遞到子shell裡。如果啟動非交互式shell以前設置的alias不能在腳本中使用。
其實這也沒什麼大不了,使用source命令直接在原shell中執行就好了。