if-then語句格式如下
bash shell中的if語句可鞥會和我們接觸的其他if語句的工作方式不同,bash shell的if語句會運作if語句後面的那個指令,如果該指令的退出狀态碼是0 那麼執行位于then部分的的指令。
代碼執行個體
這個腳本的功能就是,執行date指令,如果date指令執行成功,那麼他的退出狀态碼是0就執行then後面的代碼,在螢幕上面輸一行文字,this is the if-then test
then後面的語句可以是一條或多條,和我們寫簡單的shell腳本沒有差別,這裡會一條一條的執行下去
測試執行個體代碼
如果我們想要在shell和我們平常一樣使用if else的功能,我們需要使用一下指令格式
這裡,如果 執行if後面的指令的退出狀态碼是0 就執行then後面的代碼塊,否則就執行else後面的代碼塊
測試代碼
在shell程式設計中,也是有if嵌套的,使用格式如下
這個就沒有執行個體代碼了,如果有興趣的,可以吧上面的代碼改吧改吧試試看,每次隻能測試一種。
好了,學習下一個指令,test
test是個好東西,他的功能之一就是可以是我們shell的if可以比較真假的,test的基本指令格式很簡單
condition是test指令要測試的一系列參數和值,當用在if-then語句的時候,test指令執行,如果tets指令中列出的條件為真的時候,退出狀态碼為0 否則為1,這樣就可以在if-then中使用了
就是下面的格式了
不過每次這麼寫也挺别扭的。是以,在bash中,提供了另外一種tets的寫法,那就是方括号[]
不過必須要在左方括号右面,右方括号左面各加一個空格才可以,不然報錯
test指令可以判斷三種類型條件
1. 數值比較
2. 字元串比較
3. 檔案比較
第一類,test數值比較的基本功能
第二個兒問題
#!/bin/bash
#testing string sort order
val1=testing
val2=Testing
if [ $val1 \> $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi
字元串大小
#testing string length
val2=''
if [ -n "$val1" ]
echo "the string '$val1' is not empty"
echo "the string '$val1' is empty"
if [ -z "$val2" ]
echo "the string '$val2' is empty"
echo "the string '$val2' is not empty"
後面還有檔案的比較,由于檔案比較内容比較多,我會在寫一個。