特殊變量
變量 | 說明 |
---|---|
$0 | 擷取目前執行的 Shell 腳本的檔案名,如果執行腳本包含了路徑,則包含腳本路徑 |
$n | 擷取目前執行的 Shell 腳本的第 n 個參數值,即 n=1..9,n 為 0 時,同上 |
$# | 擷取目前執行的 Shell 腳本後面接的參數的總個數 |
$* | 擷取目前 Shell 腳本所有傳參的參數,加上雙引号,"$*" 表示将所有的參數視為單個字元串,相當于 "$1 $2 $3" |
$@ | 擷取目前 Shell 腳本所有傳參的參數,不加雙引号和 $* 相同。加上雙引号,"$@" 表示将所有的參數視為不同的獨立字元串,相當于 "$1" "$2" "$3" |
$? | 擷取上一個指令的執行狀态的傳回值(0 為成功,非 0 則失敗) |
檔案測試表達式
常用檔案測試操作符 | |
---|---|
-d 檔案 | 檔案存在且為目錄則為真,即測試表達式成立 |
-f 檔案 | 檔案存在且為普通檔案則為真,即測試表達式成立 |
-e 檔案 | 檔案存在則則為真,即測試表達式成立。不區分檔案或目錄 |
-r 檔案 | 檔案存在且可讀則為真,即測試表達式成立 |
-s 檔案 | 檔案存在且大小不為 0 則為真,即測試表達式成立 |
-w 檔案 | 檔案存在且可寫則為真,即測試表達式成立 |
-x 檔案 | 檔案存在且可執行則為真,即測試表達式成立 |
-L 檔案 | 檔案存在且為連結則為真,即測試表達式成立 |
f1 -nt f2 | 檔案 f1 比檔案 f2 新則為真,即測試表達式成立。根據檔案的修改時間來計算 |
f1 -ot f2 | 檔案 f1 比檔案 f2 舊則為真,即測試表達式成立。根據檔案的修改時間來計算 |
字元串測試表達式
常用字元串測試操作符 | |
---|---|
-n "字元串" | 若字元串的長度不為 0 ,則為真,即測試表達式成立,n 可以了解為 no zero |
-z "字元串" | 若字元串的長度為 0 ,則為真,即測試表達式成立,z 可以了解為 no zero |
"串1" = "串2" | 若字元串 1 等于字元串 2,則為真,即測試表達式成立,可使用 "=="代替 "=" |
"串1" != "串2" | 若字元串 1 不等于字元串 2,則為真,即測試表達式成立,但不能使用 "!=="代替 "!=" |
整數二進制比較操作符
在 [] 以及 test 中使用的比較符号 | 在 (()) 和 [[]] 中使用的比較符号 | |
---|---|---|
-eq | == 或 = | 相等 |
-ne | != | 不相等 |
-gt | > | 大于 |
-ge | >= | 大于相等 |
-lt | < | 小于 |
-le | <= | 小于相等 |
邏輯操作符
-a | && | and,與,兩端都為真,則結果為真 |
-o | 雙豎線 | or,或,兩端有一個為真,則結果為真 |
! | not,非,兩端相反,則結果為真 |