if 語句通過關係運算子判斷表示式的真假來決定執行哪個分支。shell 有三種 if ... else 語句:if ... else 語句的語法:
if [ expression ]注意:expression 和方括號([ ])之間必須有空格,否則會有語法錯誤。then
statement(s) to be executed if expression is true
fi
舉個例子:
#!/bin/sha=10b=20
if[$a==$b]
then
echo "a is equal to b"
fiif[$a
!=$b
]then
echo "a is not equal to b"
fi
執行結果:
a is not equal to b舉個例子:
#!/bin/sha=10b=20
if[$a==$b]
then
echo "a is equal to b"
else
echo "a is not equal to b"
fi
執行結果:
a is not equal to b舉個例子:
#!/bin/sha=10b=20
if[$a==$b]
then
echo "a is equal to b"
elif[$a
-gt$b
]then
echo "a is greater than b"
elif[$a
-lt$b
]then
echo "a is less than b"
else
echo "none of the condition met"
fi
執行結果:
a is less than b
if ... else 語句也可以寫成一行,以命令的方式來執行,像這樣:
iftest$[2
*3]-eq
$[1+5
];then echo 'the two numbers are equal!';fi
;
if ... else 語句也經常與 test 命令結合使用,如下所示:
num1=$[2*3]
num2=$[
1+5]
iftest
$[num1]
-eq$[num2]
then
echo 'the two numbers are equal!'
else
echo 'the two numbers are not equal!'
fi
輸出:
the two numbers are equal!test 命令用於檢查某個條件是否成立,與方括號([ ])類似。
case 語句匹配乙個值或乙個模式,如果匹配成功,執行相匹配的命令。case語句格式如下:
case 值 incase工作方式如上所示。取值後面必須為關鍵字 in,每一模式必須以右括號結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最後。模式1)
command1
command2
command3
;;模式2)
command1
command2
command3
;;*) command1
command2
command3
;;esac
下面的指令碼提示輸入1到4,與每一種模式進行匹配:
echo 'input a number between 1 to 4'echo 'your number is:\c'
read anum
case
$anumin1
) echo 'you select 1';;2
) echo 'you select 2';;3
) echo 'you select 3';;4
) echo 'you select 4'
;;*) echo 'you do not select a number between 1 to 4'
;;esac
輸入不同的內容,會有不同的結果,例如:
input a number between 1 to 4your number is:3
you select 3
再舉乙個例子:
#!/bin/bashoption
="$"
case$in
-f)file
="$"
echo "file name is $file"
;;-d
)dir
="$"
echo "dir name is $dir"
;;*)
echo "`basename $`:usage: [-f file] | [-d directory]"
exit
1# command to come out of the program with status 1
;;esac
執行結果:
$./test.shtest.sh: usage: [ -f filename ] | [ -d directory ]
$ ./test.sh -f index.htm
file name is index.htm
$ ./test.sh -d unix
dir name is unix
shell 條件語句
test命令 測試表示式是否成立,若成立返回0,否則返回其他數值 格式一 test 條件表示式 格式二 條件表示式 檔案測試 操作符 檔案或目錄 常用的測試操作符 d 測試是否為目錄 directory e 測試目錄或檔案是否存在 exist f 測試是否為檔案 file r 測試當前使用者是否有許...
shell 條件控制語句
if else命令 1 單分支if條件語句 if 條件判斷式 then 程式fi注意 1.if語句使用fi結尾,和一般語言使用大括號結尾不同。2.條件判斷式 就是使用test命令判斷,所以中括號和條件判斷式之間必須有空格 3.then後面跟符號條件之後執行的程式,可以放在之後,用 分割,也可以換行寫...
shell程式設計if條件語句
if結構語句 if 表示式 then 語句elif 表示式 then 語句else 語句fi1 比較兩個整數大小 num 100 if num 10 then echo num 10 fi2 表示式 兩邊需要有乙個空格,等同test命令 num 100 if num gt 10 then if te...