脚本使用test命令!!
如何在 bash 脚本中使用 test 命令
TIAP
技术分享,经验交流,职业生涯探讨。
公众号
bash 脚本中的 test 命令用于检查表达式的有效性,检查命令或表达式为 true 或者 false。此外,它还可以用于检查文件的类型和权限。
如果命令或表达式有效,则 test 命令返回0,否则返回1。
使用 test 命令
test 命令的基本语法如下所示:test “var1” operator “var2”
如果其中用到了变量,需要在变量名中使用双引号。我们看下面的例子,使用 test 命令检查10是否等于20,以及10是否等于10:
上面的命令中:
-
test - test 命令
-
10 - 第一个变量
-
-eq - 比较运算符
-
20 - 第二个变量
[ 10 -eq 20 ] && echo "true" || echo "false"
除了整数以外,也可以在 bash 中使用 test 命令比较字符串,下面我们来看一些例子。
使用 test 命令比较字符串
检查字符串是否不为空
-n 选项用于检查字符串长度是否为非零。如果字符串不为空则返回 true,如果字符串为空,则返回 false:
检查字符串是否为空
-z 选项用于检查字符串长度是否为零。如果字符串长度为零,则返回true,否则返回false:
检查字符串是否相等“=”运算符检查string1是否等于string2。如果两个字符串相等,则返回0;如果两个字符串不相等,则返回1:
$ [ "sam" = "SAM" ] && echo $? || echo $?
在这里,表达式略有不同。stdout 变量打印使用 $? 而不是 true 或 false。
检查字符串是否不相等
!=运算符检查 String1 是否不等于 String2。如果这两个字符串不相等,则返回0。如果两个字符串相等,则它返回1:[ "abc" != "ABC" ] && echo $? || echo $?
test 命令比较整数
检查数字是否相等
-eq 选项检查两个整数是否相等,如果相等返回0,否则返回1:[ 10 -eq 20 ] && echo $? || echo $?
检查数字是否不相等-ne 选项检查两个整数是否不相等,如果不相等返回0,否则返回1:
[ 10 -ne 20 ] && echo $? || echo $?
检查一个数字是否大于等于另一个选项 -ge 用于检查整数1 是否大于等于整数2,如果是则返回0,否则返回1:
[ 100 -ge 10 ] && echo $? || echo $?
-gt 运算符检查整数1是否大于整数2。如果是,则返回0。否则,返回1:
[ 20 -gt 10 ] && echo $? || echo $?
检查一个数字是否小于等于另一个-le 运算符检查整数1是否小于或等于整数2。如果为真,则返回0,否则返回1:
[ 5 -le 10 ] && echo $? || echo $?
-lt 运算符检查整数1是否小于整数2。如果整数1小于整数2,则返回0,否则返回1:
[ 5 -lt 10 ] && echo $? || echo $?
test 命令与文件和目录操作
test 命令还可用于文件和目录,下面我们来看几个例子。
下面的命令用于检查文件对于当前用户是否可执行,如果可执行,返回0,否则返回1:[ test -x filename ] && echo executable || echo non-executable
也可以相同的方式检查文件的其他权限,比如 r 和 w。在此可使用的其他常用参数包括:
命令 |
描述 |
-e | 目录/文件是否存在 |
-f | 是否为文件 |
-d | 是否为目录 |
-s | 文件大小是否大于0 |
-L | 是否为符号链接 |
-S | 是否为套接字(socket) |
上面的例子我们是使用的一行代码做的演示,除此以外,我们还可以在 bash 脚本中使用 test 命令以及 if else 分支条件。
下面我们来看一个简单的例子,传递参数用于比较两个数字:## 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
大家可以执行一下,看看结果,如下图所示:
收录于合集 #Linux
139个上一篇在 bash 脚本中如何检查一个字符串是否包含另一个字符串下一篇如何使用 curl 发送 DELETE 请求
TIAP
写下你的留言