1. 程式人生 > >shell流程控制

shell流程控制

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

#建議大家把這幾種寫法都試一試,我也是全部都是自己動手寫了一遍,做個筆記,怕自己以後忘記,我記憶
#力不太好