條件測試使用方式:express
test expression 或ide
[::expression::] 或測試
[[::expression::]]字符串
說明:it
「test」和」[「 均爲命令,」[[」是關鍵字io
上面的形式中的□爲空格,必須for循環
整數測試class
-eq 等於 [ "$a" -eq "$b" ]test
-ne 不等於 [ "$a" -ne "$b" ]file
-gt 大於 [ "$a" -gt "$b" ]
-ge 大於等於 [ "$a" -ge "$b" ]
-lt 小於 [ "$a" -lt "$b" ]
-le 小於等於 [ "$a" -le "$b" ]
<, <=,>, >= 此些須要在雙括號「(())」中才能使用
(( 「$A」 > 「$B「 ))
字符串測試
= 等於 [ "$a" = "$b" ]
!= 不等於 [ "$a" != "$b" ]
< 小於 [ 「$a」 \< 「$b」 ] ,轉義
> 大於 [[ 「$a」 > 「$b」 ]]
-z 字符串爲"null", 意思就是字符串長度爲零
-n 字符串不爲"null"
文件測試
-f file 測試文件是否爲普通文件
-d dir 存在且爲一個目錄時爲真
-h或-L file 測試文件是否爲符號連接
-r 文件是否具備可讀權限(正在運行此測試命令的用戶)
-w 文件是否具備可寫權限(正在運行此測試命令的用戶)
-x 文件是否具備可執行權限(正在運行此測試命令的用戶)
-e 判斷文件是否存在
-s 判斷文件大小是否爲0,不爲0時返回真
f1 -nt f2 文件f1比文件f2新
f1 -ot f2 文件f1比文件f2舊
f1 -ef f2 文件f1和文件f2是相同文件的硬連接
! "非" -- 反轉上邊全部測試的結果
if循環格式(特別注意if elif 後均須要加then)
if [ condition1 ]
then
command
…
elif [ condition2 ]
then
command
…
else
command
…
fi
for循環
for arg in [list]
do
command
…
done
while循環 須要注意的是對判斷條件的修改
while [conditions] while在知足condition時執行條件,不知足是不執行do循環
do
command
…
done
until循環
until [conditions]
until 在不知足conditions條件時,執行循環,不知足不執行都正好與while相反
do
command
…
done