shell script 是利用 shell 的功能所寫的一個『程序 (program)』,這個程序是使用純文本文
件,將一些 shell 的語法與指令(含外部指令)寫在裏面, 搭配正規表示法、管線命令與數據流重
導向等功能,以達到我們所想要的處理目的。
利用test指令的測試功能
(中括號的使用方法與 test 幾乎一模一樣)但要注意:
在中括號 [] 內的每個組件都需要有空格鍵來分隔;
在中括號內的變數,最好都以雙引號括號起來;
在中括號內的常數,最好都以單或雙引號括號起來。
shift:造成參數變量號碼偏移
條件判斷式
利用 if .... then
單層、簡單條件判斷式
多重、複雜條件判斷式
如果考慮更復雜的情況,則可以使用這個語法:
netstat的指令,這個指令可以查詢到目前主機有開啓的網絡服務端口 (service ports),
可以利用『 netstat -tuln 』來取得目前主機有啓動的服務。
利用 case ..... esac 判斷
利用 function 功能
function fname() {
程序段
}
另外, function 也是擁有內建變量的~他的內建變量與 shell script 很類似, 函數名稱代表示 $0 ,
而後續接的髮量也是以 $1, $2... 來取代的。
循環
while do done, until do done (不定循環)
for...do...done (固定循環)
for var in con1 con2 con3 ...
do
程序段
done
for...do...done 的數值處理
for (( 開始值; 限制值; 執行步階 ))
do
程序段
done
shell script 的追蹤與debug
[root@www ~]# sh [-nvx] scripts.sh
選項與參數:
-n :不要執行 script,僅查詢語法的問題;
-v :再執行 sccript 前,先將 scripts 的內容輸出到屏幕上;
-x :將使用到的 script 內容顯示到屏幕上,這是很有用的參數!
shell script 的執行,至少需要有r的權限,若需要直接指令下達,則需要擁有r與x的權限;