1.腳本格式:
聲明位于shell腳本的行首,通常形式如下:
- #!/bin/sh
- #!/bin/bash
其中#表示注釋,!聲明所使用的shell,后面為所使用shell的絕對路徑。
2.常用函數
echo:shell輸出語句,可不接參數使用。其常用參數為:
- -n:不換行
- -e:將通配符按照格式進行處理,如:
- \a 發出警告聲;
- \b 刪除前一個字符;
- \c 最后不加上換行符號;
- \f 換行但光標仍舊停留在原來的位置;
- \n 換行且光標移至行首;
- \r 光標移至行首,但不換行;
- \t 插入tab;
- \v 與\f相同;
- \\ 插入\字符;
- \nnn 插入nnn(八進制)所代表的ASCII字符;
read:獲取目標輸入,將輸入賦值給變量。使用方法如下:
- read a "Please input a:"——輸出”Please input a:“ 并將輸入的值傳遞給變量a;
- read a b——無輸出,并將輸入的值傳遞給變量a與b,以空格分割;
- read——無輸出,并將輸出傳遞給$REPLY
test:用于執行表達式,并通過$?查看表達式的值。(0真1假)
- 對于每條Linux命令而言,都有其方法的退出狀態,同樣可以通過$?查詢,0為成功,1為失敗。
3.條件判斷語句
if:條件語句,具體寫法如下:
- if expression1
- then
- commands1
- elif expression2
- then
- commands2
- else
- commandsn
- fi
case:選擇語句,具體寫法如下:
- case expression1 in
- pattern1)
- command1
- ;;
- pattern2)
- commands2
- ;;
- ……
- *) #缺省執行
- commandsn
- ;;
- pattern1)
- esac
4. 循環控制語句
for:循環語句,具體寫法如下:
- for variable in list:
- do
- commands
- done
其中list需要是一個可迭代對象,如:列表、命令、字符串、文件名列表等。for循環執行的次數取決于可迭代對象的長度。一般的,循環中需要出現循環變量,但不絕對。
while、until:循環語句,具體寫法如下
- while expr
- do
- commands
- done
首先執行expr,判斷其退出狀態,若為0則執行循環體內的commands直至expr表達式結果非0;until則與之相反。
break [n]、continue [n]:循環跳出語句,用于跳出第n重循環。
5.進程控制語句
exit n:退出腳本,其中n用于代表出錯代碼,從0-255;一般約定0代表正常退出;
sleep n:睡眠n秒鐘;