1、echo $?:任何命令進行時都將返回一個退出狀態,輸出上一個命令的退出狀態,0表示退出成功。
2、測試檔案狀態:[ -w text ]測試檔案是否可寫,echo $?輸出為0表示可寫,否則不可寫
[ -d text ]檔案是不是目錄,echo $?輸出為1表示不是目錄。0表示符合,1表示不符合。
[ -w text -a -d text ]檔案是不是可寫並且是不是路徑,-a表示同and,-o表示or
- d 目錄 - s檔案長度大於0、非空
- f 正規檔案 - w可寫
- L 符號串連 - u檔案有s u i d位設定
- r 可讀 - x可執行
3、測試字串:[string string_operator string]:如 [ $leeboy = "hello" ],[ -z
$leeboy ]。
= 兩個字串相等。!=兩個字串不等。 -z空串。 -n非空串。
4、測試數值:[ number number_operator number ]:如[ $leeboy -eq 9 ]
-eq 數值相等。
-ne 數值不相等。
-gt 第一個數大於第二個數。
-lt 第一個數小於第二個數。
-le 第一個數小於等於第二個數。
-ge 第一個數大於等於第二個數。
5、if在指令碼中的使用。
#!/bin/sh#判斷輸入的是不是空echo -e "Enter your name:\c"read nameif [ "$name" = "" ] #此處必須用雙引號,否則報錯thenecho "you did not enter your name!"elif [ "$name" = "leeboy" ];then#如果then在一行寫,中間要加“;”echo "you are the one!"elseecho "hello $name!"fi
6、給指令碼輸入參數
#!/bin/sh#判斷輸入的參數個數if [ $# -lt 3 ]#$#是參數的個數thenecho "Usage: `basename $0`: arg1 arg2 arg3"exit 1fiecho "basename:$0"#$0表示shell指令碼的名字echo "arg1: $1"#shell的各個參數echo "arg2: $2"echo "arg3: $3"