標籤:
預定義變數:
預定義變數是由Bash程式預先定義好的一類特殊變數,使用者只能使用預定義變數,而不能建立新的預定義變數,也不能直接為預定義變數賦值。預定義比變數使用"$"符合和另一個符號組合表示。
$#:表示命令中位置參數的個數。
$*:表示所有位置參數的內容。
$?:表示前一條命令執行後的返回狀態,傳回值為0表示執行正確,任何非0值均表示出現異常。
$0:表示當前執行的指令碼或程式的名稱。
檔案測試:
-d測試是否為目錄(Directory)。
-e測試目錄或檔案是否存在(Exist)。
-f測試是否為檔案(File)。
-r測試目前使用者是否有許可權讀(Read)。
-w測試目前使用者是否有許可權寫(Write)。
-x測試是否有執行許可權(Excute)。
附:-d參數使用樣本:#[ -d /tmp/ ]
#echo $? //查看前一條命令的傳回值,0表示成立,tmp目錄存在。
#[ -d /tmp/ ] && echo "YES" //如果tmp目錄存在則在螢幕上列印YES。
整數值比較:
-eq第1個數等於(Equal)第2個
-ne第1個數不等於(Not Equal)第2個數
-gt第1個數大於(Greater Than)第2個數
-lt第1個數小於(Lesser Than)第2個數
-le第1個數小於或等於(Lesser or Equal)第2個數
-ge第1個數大於或等於(Greater or Equal)第2個數
附:-gt參數使用樣本:#[ 6 -gt 5 ] && echo "Too many"
字串比較:
=第1個字串與第2個字串相同。
!=第1個字串與第2個字串不相同,其中“!”表示取反的意思。
-z檢查字串是否為空白(Zero),對於未定義或賦予空值的變數將視為空白串。
邏輯測試:
與&&:邏輯與,表示“而且”的意思,只有當前後兩個條件都成立時,整個測試命令的傳回值才為0。使用Test命令測試時,“&&”可以改為“-a”。
或||:邏輯或,表示“或者”的意思,只要前後兩個條件中有一個成立時,整個測試命令的傳回值即為0(結果成立)。使用Test命令測試時,“||”可以改為“-o”。
非!:邏輯否,表示“不”的意思,只有當指定的條件不成立時,整個測試命令的傳回值才為0(結果成立)。
shell常用測試命令