shell指令碼分類

2022-04-11 09:38:16 字數 1026 閱讀 8488

shell指令碼分為三類:登入指令碼、互動式指令碼、非互動式指令碼

一、登入指令碼類似於windows下的計算機設定中的登入指令碼和賬戶設定下的登入指令碼的合集(我是這麼理解的哈)。

/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的時候,總會去呼叫它。

$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。

shell指令碼分享

1 編寫指令碼 bin per.sh,判斷當前使用者對指定引數檔案,是否不可讀並且不可寫 2 編寫指令碼 root bin excute.sh,判斷引數檔案是否為sh字尾的普通檔案,如果是,新增所有人可執行許可權,否則提示使用者非指令碼檔案 3 編寫指令碼 root bin nologin.sh和l...

Shell指令碼分割字串

以字元進行切割時 從字串左邊開始計數 如果想從字串的左邊開始計數,那麼擷取字串的具體格式如下 其中,string 是要擷取的字串,start 是起始位置 從左邊開始,從 0 開始計數 length 是要擷取的長度 省略的話表示直到字串的末尾 url c.biancheng.net echo 結果為b...

文字分類 libsvm

關於 libsvm 的介紹以及相關 網上很多,感興趣可以找找。這是libsvm 這裡主要是針對之前學習過的幾種特徵篩選演算法用 libsvm 進行比較。採用搜狗實驗室的資料,選擇商業類文字 1001 篇,娛樂類文字 1208 篇,測試集 29904 篇。分別採用文件頻次,卡方分布,互資訊,資訊增益來...