Shell中自帶的一些測(cè)試指令, 下表列出這些測(cè)試指令的含義以及是否可用于 test命令, bash, ksh.
開(kāi)關(guān) | test | bash | ksh | 定義 |
| -a FILE | 支持 | 支持 | 只是文件存在 | |
| -b FILE | 支持 | 支持 | 支持 | 文件存在, 并且是一個(gè)類似于 /dev 下的磁盤設(shè)備之類的塊文件 |
| -c FILE | 支持 | 支持 | 支持 | 文件存在, 并且是一個(gè)類似于 /dev 下的TTY設(shè)備之類的字符文件 |
| -d FILE | 支持 | 支持 | 支持 | 文件存在, 并且是一個(gè)標(biāo)準(zhǔn)目錄 |
| -e FILE | 支持 | 支持 | 支持 | 只是文件存在 |
| -f FILE | 支持 | 支持 | 支持 | 文件存在, 并且是一個(gè)類似于平面文件的標(biāo)準(zhǔn)文件 |
| -g FILE | 支持 | 支持 | 支持 | 文件存在, 并且是一個(gè)set-group-ID. 這是指對(duì)文件可執(zhí)行性的用戶有效組進(jìn)行改變的文件許可 |
| -G FILE | 支持 | 支持 | 支持 | 文件存在, 并且它的組所有權(quán)是用戶的有效組ID |
| -h FILE | 支持 | 支持 | 支持 | 文件存在, 并且它是一個(gè)符號(hào)鏈接. 和 -L 一樣 |
| -k FILE | 支持 | 支持 | 支持 | 文件存在, 并且它粘著位設(shè)置. 這意味著只有文件的所有者或者目錄的所有者可以刪除文件 |
| -l STRING | 支持 | 和類似于 /usr/bin/test -l string -gt 5 && echo 的數(shù)字值, 比較 STRING 長(zhǎng)度 | ||
| -L FILE | 支持 | 支持 | 支持 | 文件存在, 并且它是一個(gè)符號(hào)鏈接. 和 -h 一樣 |
| -n STRING | 支持 | 支持 | 支持 | STRING 的長(zhǎng)度非零 |
| -N FILE | 支持 | 支持 | 文件存在, 但是自從最近一次讀入之后, 已經(jīng)被修改 | |
| -o OPTION | 支持 | 支持 | 支持 | 如果 shell 的 OPTION 被打開(kāi), 返回真, 例如 set -x |
| -O FILE | 支持 | 支持 | 支持 | 文件存在, 并且它的所有者由有效的用戶ID決定 |
| -p FILE | 支持 | 支持 | 支持 | 文件存在, 并且它是一個(gè)命名管道 (or FIFO) |
| -r FILE | 支持 | 支持 | 支持 | 文件存在, 并且可讀 |
| -s FILE | 支持 | 支持 | 支持 | 文件存在, 并且它的大小大于 0 字節(jié) |
| -S FILE | 支持 | 支持 | 支持 | 文件存在, 并且它是一個(gè) socket |
| -t [FD] | 支持 | 支持 | 支持 | 在一個(gè)終端打開(kāi) FD(文件描述符), 默認(rèn)是 stdout |
| -u FILE | 支持 | 支持 | 支持 | 文件存在, 并且 set-user-ID 被設(shè)置 |
| -w FILE | 支持 | 支持 | 支持 | 文件存在, 并且可寫 |
| -x FILE | 支持 | 支持 | 支持 | 文件存在, 并且可執(zhí)行 |
| -z STRING | 支持 | 支持 | 支持 | STRING 的長(zhǎng)度為 0 |
shell中的特殊參數(shù)是shell的內(nèi)部變量, 要用 前綴$ 來(lái)使用.
比如 echo $? 就是獲取 shell內(nèi)部變量 "?" 的值.
內(nèi)容變量一覽:
參數(shù) | 定義 |
| * | 從 1 開(kāi)始, 完成所有位置變量列表. 如果被雙引號(hào)引上, 成為有 IFS (內(nèi)部文件分隔符)值的第一個(gè)字符分割的單詞 |
| @ | 從 1 開(kāi)始, 完成所有位置變量列表. 如果被雙引號(hào)引上, 將每一個(gè)位置參數(shù)變成單個(gè)詞 |
| # | 以十進(jìn)制表示的位置參數(shù)數(shù)目 |
| ? | 最后或者最近一個(gè)前臺(tái)任務(wù)的返回碼. 如果任務(wù)被一個(gè)信號(hào)殺掉, 返回值為 128 加上信號(hào)的值. 例如: 標(biāo)準(zhǔn)kill信號(hào)值是 15, 那么返回值就是 143 |
| - | 所有發(fā)送給 shell 的標(biāo)志, 或者 set 命令提供的標(biāo)志 |
| $ | shell 進(jìn)程ID. 如果在子shell中, 它被擴(kuò)展為當(dāng)前shell的值, 而不是子shell的值 |
| ! | 最近被放到后臺(tái)執(zhí)行的命令的進(jìn)程ID |
| _ | 擴(kuò)展為前一個(gè)命令的最后一個(gè)參數(shù) |
| 0 | 擴(kuò)展為shell或者shell腳本的名字 |
| 1…9 | 提供給shell, 函數(shù)或者腳本的位置參數(shù). 比 9 大的值可以用 ${number} 來(lái)訪問(wèn) |
新聞熱點(diǎn)
疑難解答
圖片精選