shell腳本能夠看作是命令的堆砌,經過結合命令流程控制機制實現。python
解釋器 #!/bin/bash或/usr/bin/python 也稱爲shebangshell
通常腳本須要賦予執行權限,也能夠使用bash xxx.sh 來事先聲明express
shell的條件判斷能夠分爲bash
1:整數測試ide
2:字符串測試測試
3:文件測試spa
條件測試表達式字符串
[ expression ] #注意方括號與表達式之間有空格string
` expression ` #也有這種格式的測試格式it
test expression
整數比較
-eq:兩個整數是否相等 #equal
-ne:兩個整數是否不等 #not equal
-gt:前一個數是否大於後一個數
-lt:前一個數是否小於後一個數
-ge:前一個數是否大於等於後一個數
-lt:前一個數是否小於等於後一個數
文件測試:
-e /path/to/file :測試文件是否存在
例如:[ -e /etc/inittab ] [ ! -e /etc/inittab ]
-d /path/to/file :測試是否爲目錄
-f /path/to/file :測試是否爲普通文件
-r /path/to/file 測試文件對當前用戶是否有讀權限
-w /path/to/file 測試文件對當前用戶是否有寫權限
-x /path/to/file 測試文件對當前用戶是否有執行權限
字符測試
== :測試字符串string1是否與字符串string2相同
!= :測試字符串string1是否與字符串string2不相同
>
<
-n: 測試字符串是否爲空
-z: 測試字符串是否爲非空
命令間邏輯
邏輯與:&&
邏輯非:!
邏輯或:||
條件判斷,控制結構
if 判斷條件;then #單分支
statement1
statement2
...
fi
if 判斷條件;then
statement
...
else
statement
...
fi
算數運算
算數運算表達式:
1:let 算術運算表達式 例:let c=$A+$B
2:$[算術運算表達式] 例:C=$[$A+$B]
3:$((算數運算表達式)) 例:C=$(($A+$B))
4:expr 算數運算表達式 #表達式中各操做數和運算符之間要有空格,並且要使用命令引用
例:C=`expr $A + $B`
在腳本中使用exit 能夠退出當前shell
exit # 自定義返回狀態值
#若是腳本沒有定義狀態退出碼,最後一條命令的退出碼即爲腳本退出碼
多分支if語句
if 判斷條件;then
statement
...
elif 判斷條件2;then
...
...
else
...
fi
測試腳本
bash -n xxx.sh #簡單檢查腳本語法錯誤。
bash -x xxx.sh #可查看每一個語句的執行結果,來檢查錯誤。