shell裡面的流程控制不能為空,因此如果else裡面沒有語句就不要寫else,貌似也可以在else裡面寫乙個":"表示什麼都不做。源自實驗樓的高階 bash 指令碼程式設計指南課程。
if語句的語法格式為:
if condition
then
command 1
command 2
...command n
fi
if else語句的語法格式為:
if condition
then
command 1
command 2
...command n
else
command 1
command 2
...command m
fi
if elif else語句的語法格式為,else語句如果沒有就不要寫:
if condition1
then
command 1
command 2
...command n
elif condition2
then
command 1
command 2
...command m
else
command 1
command 2
...command p
fi
乙個簡單的例子
a=10
b=20
if[$a -eq $b
]then
echo
"a == b"
elif
[$a -gt $b
]then
echo
"a > b"
elif
[$a -lt $b
]then
echo
"a < b"
else
echo
"ineligible"
fi
for迴圈一般格式為:
for var in item1 item2 ... itemn
docommand 1
command 2
...command n
done
for loop in 1 2 3 4 5
doecho
"the value is: $loop"
done
輸出結果為:
the value is: 1
the value is: 2
the value is: 3
the value is: 4
for str in this is a string
doecho
$str
done
輸出結果為:
thisisa
string
while迴圈用於不斷執行一系列命令,也用於從輸入檔案中讀取資料;命令通常為測試條件。其格式為:
while condition
docommand 1
command 2
...command n
done
a=1
while[
$a -lt 6 ]
doecho
$alet
"a++"
#用於指定算數運算子,即 let expretion,let只能執行整數的相關操作,也可以寫為 let a=$a+1
done
輸出結果為:
123
45
echo
'press exit'
echo -n 'who do you think is the most handsome: '
while
read man
doecho
"yes!$man is really handsome"
done
該實驗中,輸入的字串存在man中,按回車表示輸入結束,按
或者
可以結束程式的等待輸入狀態。
無限迴圈的語法格式為:
while
:# ":"在shell中表示空命令,也可以視為true。
docommand 1
command 2
...command n
done
或者
while
true
docommand 1
command 2
...command n
done
或者
for((;
;))
until迴圈執行一系列命令直至條件為真時停止。until迴圈與while迴圈在處理方式上正好相反。一般while迴圈由於until迴圈, 但是在某些特殊情況下,until迴圈更加有用。until迴圈的語法格式為:
until conditon
docommand 1
command 2
...command n
done
a=1
until[
$a -gt 6 ]
doecho
$alet
"a++"
#用於指定算數運算子,即 let expretion,let只能執行整數的相關操作,也可以寫為 let a=$a+1
done
輸出結果為:
123
456
shell中case語句為多選擇語句。可以用case語句匹配乙個值與乙個模式,如果匹配成功,執行相匹配的命令。case語句的格式如下:
case var in
item 1)
command 1
command 2
...command n ;;
item 2)
command 1
command 2
...command m ;;
esac
c=
"ccc"
read man
case
$man
in"aaa"
)echo
"aaa";;
"bbb"
)echo
"bbb";;
$c)echo
"ccc";;
*)echo
"else";;
esac
在迴圈過程中,有時候需要在未達到迴圈結束條件時強制跳出迴圈,shell中有兩個命令來實現這個功能:break和continue。
break命令允許跳出所有迴圈(終止執行後面的所有迴圈)。
例如:
while:do
echo -n "enter a number between 1 and 5: "
read anum
case
$anum
in 1|2|3|4|5)
echo
"the number you entered is $anum!";;
*)echo
"the number you entered is not between 1 and 5! game over!!!"
break;;
esac
done
結果輸出為:
enter a number between 1 and 5: 5
the number you entered is 5!
enter a number between 1 and 5: 6
the number you entered is not between 1 and 5! game over!
!!
與c++中類似,continue不會跳出整個迴圈體,只是會跳出當前迴圈。 Shell流程控制
case迴圈 if condition condition then statements if true 1 elif condition condition then statements if true 2 else statements if all else fails fi注 方括號中的...
Shell 流程控制
shell的流程控制不可為空,如果else分支沒有語句執行,就不要寫這個else。if 語句語法格式 if condition then command1 command2 commandn fi寫成一行 適用於終端命令提示符 if ps ef grep c ssh gt 1 then echo t...
Shell流程控制
shell 流程控制 if else if語法格式 if condition then command1 command2 fi 末尾的fi就是if倒過來拼寫 if else語法 if condition then command1 command2 else command1 fi if else...