條件語句在編寫腳本經常遇到;用于處理邏輯問題。
一 IF 語句
if 語句通過關系運算符判斷表達式的真假來決定執行哪個分支。Shell 有三種 if ... else 語句: if ... fi 語句; if ... else ... fi 語句; if ... elif ... else ... fi 語句。
例如: 就拿a=10;b=20來舉例
>1. if ... fi 語句 : if01.sh #!/bin/sh a=10 b=20 if [ $a -lt $b ];then #$a小于$b echo "10 is less then 20" fi >2.if ... else ... fi 語句 :if02.sh #!/bin/sh a=10 b=20 if [ $a -lt $b ];then echo "10 is less then 20" else echo "10 is not less then 20" fi >3.if ... elif ... else ... fi 語句 :if03.sh #!/bin/sh a=10 b=20 if [ $a -lt $b ];then echo "10 is less then 20" elif [ $a -eq $b ];then echo "10 is equal to 20" else echo "10 is not less then 20" #我沒找到好點的編輯器,我是用ue fi
二 case 語句
#case 語句匹配一個值或一個模式,如果匹配成功,執行相匹配的命令。語法格式: case值in 模式1) 命令1 ... ;; 模式2) 命令2 ... ;; esac
case工作方式如上所示。取值后面必須為關鍵字 in,每一模式必須以右括號結束。取值可以為變量或常數。匹配發現取值符合某一模式后,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最后。取值將檢測匹配的每一個模式。一旦模式匹配,則執行完匹配模式相應命令后不再繼續其他模式。如果無一匹配模式,使用星號 * 捕獲該值,再執行后面的命令
下面的腳本提示輸入1到4,與每一種模式進行匹配:
case01.sh #!/bin/sh read -n1 -p "please input your number: " num case $num in 1) echo "you select 1" ;; 2) echo "you select 2" ;; 3) echo "you select 3" ;; 4) echo "you select 4" ;; *) echo "you select other" ;; esac
新聞熱點
疑難解答