前往shell script教學目錄

 

(1) if…fi來測試判斷式:

(1-1) 其基本架構的寫法為:

if [ 判斷式一 ] 邏輯運算符號 [ 判斷式二 ] 邏輯運算符號 [ 判斷式三 ];

then

上述之判斷式串的最終結果若成立,就執行的寫在此命令

elif [ 判斷式甲 ] 邏輯運算符號 [ 判斷式乙 ] 邏輯運算符號 [ 判斷式丙 ];

then

第一個判斷式串最終結果為不成立,而第二的判斷式串最終結果成立,就執行的寫在此命令

else

所有判斷式串均不成立時,就執行的寫在此命令

fi

說明:

※ 邏輯運算符號,可以是&&||。在中括號之中,&&代表交集,||代表聯集。

[ 判斷式 ]邏輯運算符號可以有無限組或只有一個[ 判斷式 ],不限於上例之三組。

[ 判斷式 ]中,判斷式即是3.所介紹過的判斷式。而判斷式與左右中括號之間,一定各要相隔一個空白字元,否則執行會出錯。

elif 相當於C++中的 else if

fiif的倒反,表示if判斷式語所執行命令的結束。

(1-2) 範例如:

read -p "input n1:" n1

read -p "input n2:" n2

if [ $n1 -gt $n2 ] ;

then

    echo "n1 is greater"

elif [ $n2 -gt $n1 ];

then

    echo "n2 is greater"

else

    echo "n1 equal to n2"

fi

執行後,n1輸入5n2輸入10,顯示:

(2) case…esac來判斷:

(2-1) 其基本架構的寫法為:

case $變數名稱 in

值一)

          若變數的值等於值一,就執行寫在此的命令

          ;;

值二)

          若變數的值等於值二,就執行寫在此的命令

          ;;

*)

          若變數的值不等於上述所有情況,就執行寫在此的命令

          ;;

esac

說明:

對變數之值的測試可以有無限個,不限於上述之兩個。

※ 注意:每一段執行命令後面,必有兩個分號 ;;

(2-2)範例:

read -p "do you want to go swimming? yes or no?" reply

case $reply in

"yes")

    echo "OK, let's go!"

    ;;

"no")

    echo "oh! perhaps another day."

    ;;

*)

    echo "sorry? what are you talking about?"

    ;;

esac

執行後輸入 yes,顯示結果如:

 

 

上一篇:判斷式

下一篇:迴圈

前往shell script教學目錄

arrow
arrow

    埃伯 發表在 痞客邦 留言(0) 人氣()