test
執行條件表達式。
概要
1test [expr]
主要用途
- 執行條件表達式。
參數
文件操作符:
1-a FILE 如果文件存在,則爲true。
2-b FILE 如果文件是塊特殊的,則爲true。
3-c FILE 如果文件是特殊字符,則爲true。
4-d FILE 如果文件是目錄,則爲true。
5-e FILE 如果文件存在,則爲true。
6-f FILE 如果文件存在並且是常規文件,則爲true。
7-g FILE 如果文件是set-group-id,則爲true。
8-h FILE 如果文件是符號鏈接,則爲true。
9-L FILE 如果文件是符號鏈接,則爲true。
10-k FILE 如果文件的粘滯位(sticky)設置了,則爲true。
11-p FILE 如果文件是命名管道,則爲true。
12-r FILE 如果您可以讀取文件,則爲true。
13-s FILE 如果文件存在且不爲空,則爲true。
14-S FILE 如果文件是套接字,則爲true。
15-t FD 如果在終端上打開FD,則爲True。
16-u FILE 如果文件是set-user-id,則爲true。
17-w FILE 如果文件可寫,則爲true。
18-x FILE 如果您可以執行文件,則爲true。
19-O FILE 如果文件有效地歸您所有,則爲true。
20-G FILE 如果文件有效地歸您的組所有,則爲true。
21-N FILE 如果文件自上次讀取以來已被修改,則爲true。
22
23FILE1 -nt FILE2 根據修改日期,如果 file1 比 file2 新,則爲true。
24FILE1 -ot FILE2 根據修改日期,如果 file1 比 file2 舊,則爲true。
25FILE1 -ef FILE2 如果 file1 爲 file2 的硬鏈接,則爲true。
字符串運算符:
1-z STRING 如果字符串爲空,則爲true。
2-n STRING 如果字符串不爲空,則爲true。
3STRING 如果字符串不爲空,則爲true。
4STRING1 = STRING2 如果字符串相等,則爲true。
5STRING1 != STRING2 如果字符串不相等,則爲true。
6STRING1 < STRING2 如果 STRING1 的字典排序在 STRING2 之前,則爲true。
7STRING1 > STRING2 如果 STRING1 在字典排序在 STRING2 之後,則爲true。
其他運算符:
1-o OPTION 如果啓用了shell選項OPTION,則爲true。
2-v VAR 如果設置了shell變量VAR,則爲true。
3-R VAR 如果設置了shell變量VAR並且是變量引用,則爲true。
4!EXPR 如果expr爲假,則爲true。
5EXPR1 -a EXPR2 如果expr1和expr2都爲true,則爲true。
6EXPR1 -o EXPR2 如果expr1或expr2爲true,則爲true。
7arg1 OP arg2 算術表達式測試; OP是 -eq,-ne,-lt,-le,-gt,-ge 中的一個;算術表達式爲真時返回true。
返回值
如果表達式執行結果爲成功時返回0,當表達式執行結果爲失敗或給出非法參數時返回1。
例子
1# 執行條件表達式並顯示返回值。
2[root@pc root]$ test ! "abc" == 123; echo $?
30
4
5# 等價形式,注意:方括號 [ 後面的空格以及方括號 ] 前面的空格。
6[root@pc root]$ [ ! "abc" == 123 ]; echo $?
70
8
9[root@pc root]$ [[ ! "abc" == 123 ]]; echo $?
100
注意
- 該命令等價於
[
。 - 編寫 bash 條件表達式可用內建命令
test
,[
,組合命令[[
;
- 該命令是bash內建命令,相關的幫助信息請查看
help
命令。
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。