標籤:shell
特殊變數列表 |
變數 |
含義 |
$0 |
當前指令碼的檔案名稱 |
$n |
傳遞給指令碼或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。 |
$# |
傳遞給指令碼或函數的參數個數。 |
$* |
傳遞給指令碼或函數的所有參數。 |
[email protected] |
傳遞給指令碼或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同,下面將會講到。 |
$? |
上個命令的退出狀態,或函數的返回值。 |
$$ |
當前Shell進程ID。對於 Shell 指令碼,就是這些指令碼所在的進程ID。 |
字串運算子列表 |
運算子 |
說明 |
舉例 |
= |
檢測兩個字串是否相等,相等返回 true。 |
[ $a = $b ] 返回 false。 |
!= |
檢測兩個字串是否相等,不相等返回 true。 |
[ $a != $b ] 返回 true。 |
-z |
檢測字串長度是否為0,為0返回 true。 |
[ -z $a ] 返回 false。 |
-n |
檢測字串長度是否為0,不為0返回 true。 |
[ -z $a ] 返回 true。 |
str |
檢測字串是否為空白,不為空白返回 true。 |
[ $a ] 返回 true。 |
Shell 中包含指令碼可以使用:
. filename
或
source filename
兩種方式的效果相同,簡單起見,一般使用點號(.),但是注意點號(.)和檔案名稱中間有一空格
檔案測試運算子列表 |
操作符 |
說明 |
舉例 |
-b file |
檢測檔案是否是塊裝置檔案,如果是,則返回 true。 |
[ -b $file ] 返回 false。 |
-c file |
檢測檔案是否是字元裝置檔案,如果是,則返回 true。 |
[ -b $file ] 返回 false。 |
-d file |
檢測檔案是否是目錄,如果是,則返回 true。 |
[ -d $file ] 返回 false。 |
-f file |
檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回 true。 |
[ -f $file ] 返回 true。 |
-g file |
檢測檔案是否設定了 SGID 位,如果是,則返回 true。 |
[ -g $file ] 返回 false。 |
-k file |
檢測檔案是否設定了粘著位(Sticky Bit),如果是,則返回 true。 |
[ -k $file ] 返回 false。 |
-p file |
檢測檔案是否是具名管道,如果是,則返回 true。 |
[ -p $file ] 返回 false。 |
-u file |
檢測檔案是否設定了 SUID 位,如果是,則返回 true。 |
[ -u $file ] 返回 false。 |
-r file |
檢測檔案是否可讀,如果是,則返回 true。 |
[ -r $file ] 返回 true。 |
-w file |
檢測檔案是否可寫,如果是,則返回 true。 |
[ -w $file ] 返回 true。 |
-x file |
檢測檔案是否可執行,如果是,則返回 true。 |
[ -x $file ] 返回 true。 |
-s file |
檢測檔案是否為空白(檔案大小是否大於0),不為空白返回 true。 |
[ -s $file ] 返回 true。 |
-e file |
檢測檔案(包括目錄)是否存在,如果是,則返回 true。 |
[ -e $file ] 返回 true。 |
shell編碼常用表