命令結束狀態
執行成功返回0
執行失敗n+128
找不到命令127
沒有權限126
$?存儲返回值
if條件判斷
if-then
if-then-else
完整語法
if條件測試1;then
命令區域1
elif條件測試2;then
命令2
else
命令3
fi
(())等同於let""
條件測試的寫法
執行某個命令的結果
ifgrep-q"rm"fn.sh;then
傳回某一命令的執行結果的相反值
!命令
if!grep-q"rm"fn.sh;then
注意!後有空格
使用複合命令(())
if((20<30));then
使用[[,]]
if[[str>xyz]];then
[[,]]前後有空格
使用test
iftest"str"\"xyz";then
使用內置命令:[]
if["str"\>"str"];then
[]和test用法相同可以互換
使用-a,-o進行邏輯組合
[-rfilename1-a-xfilename]
-a且,-o或
命令1&&命令2
ifgrep-q"rm"fn.sh&&[$a-lt100];then
命令1真正執行命令2兩個爲真返回真
命令1||命令2
ifgrep-q"rm"fn.sh||[$a-lt100];then
命令1假執行命令2有一個真返回真
&&和||合用
總結:
[-n${DEBUG:-}]&&set-v||set+v
[[]],test,[]的意思用法相近,[[]]不需要考慮特殊字符
[[]]使用==和!=右邊沒有""將視爲樣式