Shell 命令 test
Shell 命令 test
test
是一个常用的 Shell 内置命令,用于检查文件类型和比较值。它可以用于条件判断,通常与 if
语句结合使用。test
命令也可以通过方括号 [
和 ]
来表示,这种形式在 Shell 脚本中非常常见。
语法
1 |
|
或
1 |
|
常用表达式
文件检查
-f FILE
:检查 FILE 是否存在且是一个普通文件。-d FILE
:检查 FILE 是否存在且是一个目录。-e FILE
:检查 FILE 是否存在。-r FILE
:检查 FILE 是否存在且可读。-w FILE
:检查 FILE 是否存在且可写。-x FILE
:检查 FILE 是否存在且可执行。-s FILE
:检查 FILE 是否存在且大小大于零。
字符串比较
-z STRING
:检查 STRING 是否为空(长度为零)。-n STRING
:检查 STRING 是否非空(长度大于零)。STRING1 = STRING2
:检查 STRING1 是否等于 STRING2。STRING1 != STRING2
:检查 STRING1 是否不等于 STRING2。
数值比较
INTEGER1 -eq INTEGER2
:检查 INTEGER1 是否等于 INTEGER2。INTEGER1 -ne INTEGER2
:检查 INTEGER1 是否不等于 INTEGER2。INTEGER1 -gt INTEGER2
:检查 INTEGER1 是否大于 INTEGER2。INTEGER1 -ge INTEGER2
:检查 INTEGER1 是否大于或等于 INTEGER2。INTEGER1 -lt INTEGER2
:检查 INTEGER1 是否小于 INTEGER2。INTEGER1 -le INTEGER2
:检查 INTEGER1 是否小于或等于 INTEGER2。
示例
文件检查示例
1 |
|
或使用方括号表示法:
1 |
|
字符串比较示例
1 |
|
数值比较示例
1 |
|
解释
文件检查:
test -f b2
或[ -f b2 ]
:检查文件b2
是否存在且是一个普通文件。- 如果条件为真,执行
then
部分的代码;否则,执行else
部分的代码。
字符串比较:
[ "$STRING1" = "$STRING2" ]
:检查字符串STRING1
是否等于STRING2
。- 如果条件为真,输出
Strings are equal.
;否则,输出Strings are not equal.
。
数值比较:
[ $NUM1 -lt $NUM2 ]
:检查数值NUM1
是否小于NUM2
。- 如果条件为真,输出
$NUM1 is less than $NUM2.
;否则,输出$NUM1 is not less than $NUM2.
。
Shell 命令 test
https://linhanmic.github.io/2024/09/14/Shell命令test/