shell腳本分為三類:登錄腳本、交互式腳本、非交互式腳本


shell腳本分為三類:登錄腳本、交互式腳本、非交互式腳本

 

一、

登錄腳本類似於windows下的計算機設置中的登錄腳本和賬戶設置下的登錄腳本的合集(我是這么理解的哈)。

其配置文件的關鍵詞為prefile,它有以下幾個關鍵配置文件:

/etc/prefile 這個是計算機腳本; [$home/.prefile ; $home/.bash_prefile ; $home/.bash_login]這三個是賬戶腳本,根據不同發行版名字不同(坑爹的linux) ;

 

說明:/etc/prefile之所以這么牛逼,應該與其內部含有export有關,export定義的環境變量,將被定義為全局變量。

 

讀取順序

登入賬號前/etc/profile >> /etc/profile.d/*                                        #/etc/profile 利用for循環調用 /etc/prefile.d/*

登入賬號時$home/.profile >> $home/.bashrc(如果有內容的話) 

 

這個順序我也不是太確定,書中沒有明確說,不過應該不會錯。

 

二、

交互式腳本,主要用於登錄賬號后,新的shell進程創建時調用,它不會再調用/etc/prefile。根據其特性:利用alisa 創建別名的時候,就可以將其寫入到$home/.bashrc,因為你每次啟動終端模擬包或者shell的時候,總會去調用它。

 

其配置文件的關鍵詞為bashrc,它有以下幾個關鍵配置文件:

$home/.bashrc ;/etc/bashrc

$home/.bashrc 此腳本會調用/etc/bashrc,而/etc/bashrc又會調用/etc/profile.d/

說明:/etc/bashrc隸屬於/etc,不用說,肯定是任何賬戶都必須要讀取的

 

讀取順序$home/.bashrc >> /etc/bashrc  >> /etc/profile.d/*

 

圖示:

 

三、

非交互式腳本,主要用於系統執行shell腳本時調用。

linux有一個全局環境變量BASH_ENV,此環境變量的作用就是為了讓非交互式腳本實現其價值,但默認此變量沒有設置。

你可以用BASH_ENV=***來給它點活干干。當然要想長期使用,還得加到./bashrc。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM