shell流程控制
阿新 • • 發佈:2018-12-08
shell流程控制
if 判斷
基本語法
if [ 條件判斷式 ];then
程式
fi
或者
if [ 條件判斷式 ]
then
程式
elif [條件判斷式]
then
程式
fi
注意事項:(1)[ 條件判斷式 ],中括號和條件判斷式之間必須有空格 (2) 推薦使用第二種方式
應用例項
案例:請編寫一個 shell 程式,如果輸入的引數,大於等於 60,則輸出 "及格了",如果小於 60, 則輸出 "不及格"
#!/bin/bash #案例:請編寫一個 shell 程式,如果輸入的引數,大於等於 60,則輸出 "及格了",如果小於 60, 則輸出 "不及格" if [ $1 -ge 60 ] then echo "及格了" elif [ $1 -lt 60 ] then echo "不及格" fi echo "-------------------------------" if [ $1 -ge 60 ];then echo "分數ok" elif [ $1 -lt 60 ];then echo "分數不ok" fi echo "-------------------------------" if [ $1 -ge 60 ] then echo "分數夠了" else echo "分數不夠" fi
注意:如果if [ $1 -ge 60 ] 和then寫在同一行的話,記得要在[ $1 -ge 60 ]後面加上;分號,語法才不會報錯,正確寫法如下
if [ $1 -ge 60 ];then
還有一種寫法也是正確的,就是不要把if [ $1 -ge 60 ]和then寫在同一行,而是把then換行寫,如果是把then換行寫的話,
那if [ $1 -ge 60 ]後面就不用加;分號了
正確寫法如下
if [ $1 -ge 60 ]
then
如下這種寫法也是正確的,把then寫到下一行,此時if [ $1 -ge 60 ]後面可以加;分號,也可以不加分號
if [ $1 -ge 60 ];
then
#!/bin/bash #注意 #[ $1 -ge 60 ]後面不寫;分號,並且then和if寫在同一行,看看語法會不會報錯(經過測試,語法會報錯) if [ $1 -ge 60 ] then echo "及格了,再接再厲" elif [ $1 -lt 60 ] then echo "不及格,要加油哦" fi #正確的第1種寫法如下,如果你想把if [ $1 -ge 60 ]和then放在同一行寫,那就在[ $1 -ge 60 ]後加 #上;分號,如下 if [ $1 -ge 60 ];then echo "及格了,再接再厲" elif [ $1 -lt 60 ];then echo "不及格,要加油哦" fi #正確的第2種寫法如下,把then寫到下一行,此時if [ $1 -ge 60 ]後面可以不用加;分號 if [ $1 -ge 60 ] then echo "及格了,再接再厲" elif [ $1 -lt 60 ] then echo "不及格,要加油哦" fi #如下這種寫法也是正確的,把then寫到下一行,此時if [ $1 -ge 60 ]後面可以加;分號,也可以不加分號 if [ $1 -ge 60 ]; then echo "及格了,再接再厲" elif [ $1 -lt 60 ]; then echo "不及格,要加油哦" fi #建議大家把這幾種寫法都試一試,我也是全部都是自己動手寫了一遍,做個筆記,怕自己以後忘記,我記憶 #力不太好