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/