1. 程式人生 > >Shell語法——參數變量,測試與比較

Shell語法——參數變量,測試與比較

等於 文件的 單個字符 amp $2 body 一個 所有 豎線

特殊變量
變量 說明
$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 <= 小於相等
邏輯操作符
在 [] 以及 test 中使用的比較符號 在 (()) 和 [[]] 中使用的比較符號 說明
-a && and,與,兩端都為真,則結果為真
-o 雙豎線 or,或,兩端有一個為真,則結果為真
! ! not,非,兩端相反,則結果為真

Shell語法——參數變量,測試與比較