这 bash 测试命令用于检查表达式的有效性。 它检查命令或表达式是真还是假。 此外,它还可用于检查文件的类型和权限。
如果命令或表达式有效,则 test
命令返回一个 0
否则它返回 1
.
使用测试命令
测试命令的基本语法如下:
test “var1” operator “var2”
在测试命令中使用变量时,请使用双引号和变量名称。
让我们使用 test
检查 10 是否等于 20 和 10 是否等于 10 的命令:
$ test 10 -eq 20 && echo "true" || echo "false"
在上面 example:
test
– 测试命令10
– 第一个变量-eq
– 比较运算符20
– 第二个变量
如果给定的表达式有效,则执行第一个命令,否则执行第二个命令。
?而不是使用 test
命令关键字,也可以使用括号 []
. 但请记住,两者之间有空间 [
标记和要比较的变量:
[ 10 -eq 20 ] && echo "true" || echo "false"
不仅是整数; 你也可以比较字符串 bash 使用测试命令。 让我分享一些例子。
与测试命令进行字符串比较
下面是一些使用 test 命令的字符串比较示例。
检查字符串是否不为空
这 -n
flag 检查字符串长度是否非零。 如果字符串非空则返回 true,否则如果字符串为空则返回 false:
$ [ -n "sam" ] && echo "True" || echo "False"
检查字符串是否为空
这 -z
标志检查字符串长度是否为零。 如果字符串长度为零,则返回 true,否则返回 false:
$ [ -z "sam" ] && echo "True" || echo "False"
检查字符串是否相等
‘=’ 运算符检查 string1 是否等于 string2。 如果两个字符串相等,则返回 0; 如果两个字符串不相等,则返回 1:
$ [ "sam" = "SAM" ] && echo $? || echo $?
在这种情况下,表达式略有不同,不是键入 true 或 false,而是 stdout
使用打印变量 $?
.
检查字符串是否不相等
这 !=
运算符检查 String1 是否不等于 String2。 如果两个字符串不相等,则返回 0。如果两个字符串相等,则返回 1:
[ "abc" != "ABC" ] && echo $? || echo $?

与测试命令的整数比较
让我们做一些数字比较 bash 测试。
检查数字是否相等
这 -eq
运算符检查 Integer1 是否等于 Integer2。 如果 integer1 等于 integer2,则返回 0,否则返回 1:
[ 10 -eq 20 ] && echo $? || echo $?
检查数字是否不相等
案例 2. -ne
运算符检查 integer1 是否不等于 integer2。 如果 Integer1 不等于 integer2,则返回 0,否则返回 1:
[ 10 -ne 20 ] && echo $? || echo $?
检查一个数字是否等于或大于另一个
这 -ge
运算符检查 integer1 是否大于或等于 integer2。 如果整数 1 大于或等于整数 2,则返回 0; 如果不是,则返回 1。
[ 100 -ge 10 ] && echo $? || echo $?
这 -gt
运算符检查 integer1 是否大于 integer2。 如果是,则返回 0。否则,返回 1:
[ 20 -gt 10 ] && echo $? || echo $?
检查一个数字是否等于或小于另一个
这 -le
运算符检查 integer1 是否小于或等于 integer2。 如果为真则返回 0,否则返回 1:
[ 5 -le 10 ] && echo $? || echo $?
这 -lt
运算符检查 integer1 是否小于 integer2。 如果整数 1 小于整数 2,则返回 0,否则返回 1:
[ 5 -lt 10 ] && echo $? || echo $?

文件和目录操作测试
test 命令可用于文件和目录。
这将检查文件是否可执行(由当前用户执行)。 如果文件是可执行文件,则返回 0,否则返回 1:
[ test -x filename ] && echo executable || echo non-executable
您可以以相同的方式使用其他文件权限,如 r 和 w。 您可以使用的其他常用参数是:
| Command | Description |
|---------|--------------------------|
| -e | File/directory exists |
| -f | is a file |
| -d | is a directory |
| -s | File size greater than 0 |
| -L | is a link |
| -S | is a socket |
在中使用测试命令 bash 剧本
到目前为止,您已经看到了 test 命令的一行代码。 您还可以将测试条件与 if-else 条件一起使用 bash 脚本。
分享一个简单的 example 比较将 ar 参数传递给脚本的两个数字:
#!/bin/bash
## Check if the numbers are equal or not
read -p "Enter the first number: " num1
read -p "Enter the second number: " num2
if test "$num1" -eq "$num2"
then
echo "$num1 is equal to $num2"
else
echo "$num1 is not equal to $num2"
fi
你可以运行 bash 具有各种数字的脚本:

我希望本教程可以帮助您了解 test 命令的基础知识 bash.