中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux shell 基礎語法B

發布時間:2020-06-10 18:20:32 來源:網絡 閱讀:180 作者:等潮的人 欄目:系統運維

接著之前的內容繼續講shell編程的基礎。
這部分還是先要鞏固重定向的使用,以及創建自己的文件描述符,在編寫shell腳本中關注臨時重定向和永久重定向的用法。
(1)< <<
(2)> >>
為了區分如上的重定向符號,大家搞懂以下2個例子就行:
cat > file <<eof;
cat >> fileA <fileB
實際使用中輸入重定向還是比較少,多數是輸出重定向
&> 表示stdout和stderr都重定向
對于文件描述符,我們不光要掌握0,1,2,還要能夠自己創建自己的文件描述符,且在shell編程中與默認的標準文件描述符進行組合使用。比如說要恢復文件描述符就是一個例子。
exec 3 >&1
exec 1> testfile
...
...
exec 1>&3
...
...
以上是輸出重定向的恢復,輸入重定向如下
exec 6 <&0
exec 0 <filein
...
exec 0 <&6
關閉文件描述符
exec 3 >&-
還有一種<>讀寫文件描述符的,慎用,最好是讀完后再重定向寫入,不然shell維護的內部指針會把文件內容搞得很混亂。
創建臨時文件和目錄
mktemp file.XXXXXX
mktemp -t 創建在/tmp下面且返回絕對路徑
mktemp -d創建目錄
tee的使用
tee -a

重定向講完,再講講腳本的控制。腳本的控制主要是信號的處理。
用kill -l就可以看到linux支持的信號。這些信號是一類“軟中斷信號”,信號分為硬中斷信號和軟中斷信號,在中斷處理的上半部分由硬中斷執行,下半部分一般都是交給軟中斷執行。linux中的kill方式就是用戶態下進程間異步信號通信的一種方法。按照不同的角度,還可以把信號分為實時和非實時,可靠和非可靠。
大部分信號都是會去停止,終止進程,但是還是有細微差異,比如信號是否可以捕獲,是否可以忽略等等,信號的默認動作也是不一樣的,有些會觸發dump core。
基本掌握 ctrl+c ctrl+z 對應的信號
捕獲信號使用trap “:” SIGINT
放棄捕獲 trap --SIGINT
可以使用trap實現簡單的跳板機程序
腳本還可以在后臺執行 bash xx.sh &
如果希望終端退出不影響腳本的執行使用nohup
執行腳本就會產生進程,進程是需要占用內存和cpu資源的。一般通過nice renice來調整謙讓度-20~19,值越低cpu需求越高。也可以用cpulimit和cgroup來實現進程的資源管理。cgroup可以對一組進程進行管理限制,且不限于cpu,memory,blkio也行。
定時腳本也是腳本控制的一個內容,at命令可以完成簡單的需求。更多的還是使用crontab文件或者crontab命令來實現,anacron也需要了解一下。

函數是基礎語法的最后一部分。
結構:
function xxx()
{

}
xxx()
{

}
在shell中變量默認都是全局的,如果要局部使用請加local
數組類等復雜變量無法直接傳遞,可以拆分后再組合來實現效果。
注意函數位置變量和腳本位置變量的關系,別混淆。
shell函數也能實現遞歸等操作。
shell定義函數也有單行的表示方式。
shell編寫腳本后,可以把一些公共的標準函數放到一個shell文件中,后續在別的腳本中直接以庫的形式引用,source和點操作符.來實現。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邵东县| 常宁市| 温宿县| 汤阴县| 那曲县| 庆阳市| 古丈县| 周宁县| 岚皋县| 秭归县| 宜昌市| 海城市| 略阳县| 杭锦后旗| 乐陵市| 遵义市| 秀山| 大厂| 海兴县| 紫云| 彭泽县| 睢宁县| 龙游县| 东安县| 普宁市| 西畴县| 那坡县| 鹤壁市| 乾安县| 涞水县| 伊宁县| 桃源县| 山阴县| 南华县| 崇仁县| 门源| 云梦县| 珲春市| 五河县| 宣化县| 宜章县|