1.條件測試:test [
命令test或[可以測試乙個條件是否成立,如果測試結果為真,則該命令的退出狀態為0,如果測試結果為假,則為1(與c語言的邏輯剛好相反)。
[是乙個命令的名字,傳給命令的各個引數之間應該用空格隔開。
測試命令:
[ -d dir ]:如果dir存在並且是乙個目錄則為真
[ -f file ]:如果file存在且是乙個普通檔案則為真
[ -z string ]:如果string的長度為零則為真
[ -n string ]:如果string的長度非零則為真
[ string1=string 2 ]:如果兩個字串相同則為真
[ string1!=string 2 ]:如果兩個字串不相同則為真
整數的比較:
-eq(等於) -ne(不等於) -lt(小於)
-gt(大於) -ge(大於等於) -le(小於等於)
字串的比較:
==(等於) !=(不等於) =(等於)但不推薦使用
帶與、或、非的測試命令
[ !expr ]:expr可以是任意一種的測試,!表示邏輯反
[ expr1 -a expr2 ]:-a表示邏輯與
[ expr1 -o expr2 ]:-o表示邏輯或
[和[[的不同在於[[支援萬用字元和正規表示式
&&相當於「if...then」
||相當於「if not...then"
2.if/then/elif/else/fi
如果兩條命令寫在同一行則需要用分號;隔開,一行只寫一條命令就不需要寫了;另外,then後面有換行,但這條命令沒有寫完,shell會自動續行,把下一行接在then後面當作一條命令處理。
注意:命令和引數之間必須用空格隔開。
if命令的引數組成一條子命令,如果該子命令的退出狀態為真,則執行then後面的子命令,如果維嘉則執行elif、else或者fi後面的子命令。
if後面的子命令通常是測試命令,但也可以是其他命令。shell指令碼中沒有{},用fi表示if語句的結束。
3.case/esac
shell指令碼中沒有switch,但有case,shell指令碼中的case可以匹配字串和wildcard,每個匹配分支可以有若干條命令,末尾必須以;;結束,執行時找到第乙個匹配的分支並執行相應的命令,然後直接跳到esac之後,不用break。
$1是乙個特殊變數,在執行指令碼時自動取值為第乙個命令列引數,也就是start,所以進入start分支執行相關的命令。
迴圈體不能為空,條件判斷的條件分支不能出現空語句,冒號,條件永遠成立,退出碼為0。
方法一:
方法二:
方法三:推薦使用。
Linux學習 語法
語法 if then 語句 if then else 語句 if 測試條件成立 then 執行命令 elif 條件成立 then 執行命令 else 條件不成立時,執行相應命令 fi 結束 bin bash case demo case 1 in start start echo 0 start.s...
shell指令碼學習之語法
一 條件測試 1 條件測試 test或 命令test可以測試乙個條件是否成立,若測試結果為真,則退出碼為0,若測試結果為假,則為1 在比較兩個字串是否相等時,建議加上雙引號,且在表示式兩邊均加上相同的乙個字母 test x data xhello 注意命令和變數的空格,重要重要重要!命令後面加空格,...
Python學習 語句 語法
注釋,不支援多行注釋 連線,當一行的程式太長時,可以使用連線符 反斜槓 1 使用if elif 和 else 進行標記 小於兩個的選擇 if 條件 語句段1 else 語句段2 大於兩個的選擇 if 條件1 語句段1 elif 條件2 語句段2 else 語句段3 2 使用while進行迴圈 whi...