鳥哥的Linux私房菜學習之第十二章筆記

shell 腳本是利用 shell 的功能所寫的一個【程序(program)】,這個程序是使用純文本文件,並一些shell 的語法與命令(含外部命令)寫在裏面,搭配正則表達式、管道命令與數據流重定向等功能,以達到咱們所想要的處理目的正則表達式

shell 腳本用在系統管理上面是很好的一項工具,但 是用在處理大量數值運算上,就不夠好了,由於shell 腳本的速度較慢,且使用的 CPU 資源較多 會形成主機資源的分配不良。shell

在 shell 腳本的文件中,命令是從上而下、從左而右地分析與執行。bash

shell 腳本的執行,至少須要有r的權限;若須要直接執行命令,則須要擁有r與x的權限。ide

絕對路徑:使用/home/ljc/shell.sh來執行命令;工具

相對路徑:假設工做目錄在/home/ljc/,則使用./shell.sh來執行debug

以bash程序來執行:經過【bash shell.sh】或【sh shell.sh】來執行3d

 

編寫腳本blog

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

良好的程序編寫習慣中,第一行要聲明 shell(#/bin/bash),第二行起聲明程序的用途、版本做者等信息。在腳本的文件頭處記錄好:ip

腳本的功能;資源

腳本的版本信息

腳本的做者與聯絡方式腳本的版權聲明方式

腳本的 History(歷史記錄);腳本內較特殊的命令

使用【絕對路徑】的方式來執行

腳本運行時須要的環境變量預先聲明與設置。

交互式腳本可用read 命令完成。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

要每次執行腳本都有不一樣結果的數據,可以使用date命令利用日期完成。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

腳本若以 source 來執行,表明在父程序的 bash 內執行之意。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

若須要進行判斷式,可以使用 test 或中括號([])來處理。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

在腳本內,$0、$一、$2..$@ 是有特殊意義的。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

條件判斷式可以使用 i.then 來判斷,如果固定變量內容的狀況下,可以使用 case $var in...esac來處理。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

循環主要分爲不定循環(while 與 unt)以及固定循環(for),配合 do、done 來完成所需任務。

咱們可以使用 sh -x script.sh 來進行程序的 debug。

-n:不要執行腳本,僅查詢語法問題

-v:再執行腳本前,先將腳本文件的內容輸出到屏幕上

-x:將使用到的腳本內容顯示到屏幕上,這是有用的參數

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息