Shell test 命令简介
发布时间:2023-06-08 14:03:52 所属栏目:教程 来源:
导读:在 Shell 中每个命令都有其应用场景,test 命令也不例外,其应用场景几乎遍布我们整个 Shell 脚本的生命周期,基本上 Shell 脚本里面都会有其身影。
当我们对数值进行算术运算,当我们需要对文件进行判断,当我们
当我们对数值进行算术运算,当我们需要对文件进行判断,当我们
在 Shell 中每个命令都有其应用场景,test 命令也不例外,其应用场景几乎遍布我们整个 Shell 脚本的生命周期,基本上 Shell 脚本里面都会有其身影。 当我们对数值进行算术运算,当我们需要对文件进行判断,当我们需要对逻辑或字符串进行判断的时候,这些情况都需要使用 test 命令来配合运算符进行操作。 在我们学习 test 命令之前,我们需要知道在 Linux 中执行命令返回 0 为正常,返回非 0 表示异常,可以利用 $? 来获取返回值。在下面的 test 操作中我们就会运用此特性来进行测试比较。 test 为 Shell 内置命令,其通常需要与 if 语句一块使用。 语法格式为 test expression, 当 test 判断 expression 为成立时,返回状态为 0,否则为非 0 值。 test 命令还可以简写为 [ ], 需要在两边中括号与 expression 是有一个空格,这个空格是必须的,否则会导致语法错误。[] 的写法更加简洁,比 test 使用频率更高。 我们可以简单来看示例: [root@master shell_test]# cat test1.sh #!/bin/bash// 使用中括号if test -ne ;thenecho trueelseecho falsefi[root@master shell_test]# bash test1.sh true[root@master shell_test]# cat test2.sh #!/bin/bash// 使用testif [ -eq ];thenecho trueelseecho falsefi[root@master shell_test]# bash test2.sh true test 命令操作主要配合比较运算符进行,可大体分为文件判断 / 数组比较 / 字符串判断 / 逻辑运算等。 数值比较 数组比较其实就是 test 命令配合关系运算符进行数字比较。 比较符 描述 示例 -eq,equal 等于 [1 -eq 1] 为 true -ne,not equal 不等于 [ 1 -ne 1] 为 false -gt,greater than 大于 [2 -gt 1] 为 true -lt,lesser than 小于 [2 -lt 1] 为 false -ge,greater or equal 大于或等于 [2 -ge 1] 为 true -le,lesser or equal 小于或等于 [2 -le 1] 为 false 关系运算顾名思义就是比较数字的大小,注意关系运算符作用的对象为数字。 #!/bin/bashnum1=num2=echo num1 为:${num1}echo num2 为:${num2}if [ $num1 -eq $num2 ]then echo $num1 -eq $num2 : num1 等于 num2else echo $num1 -eq $num2: num1 不等于 num2fiif [ $num1 -ne $num2 ]then echo $num1 -ne $num2: num1 不等于 num2else echo $num1 -ne $num2 : num1 等于 num2fiif [ $num1 -gt $num2 ]then echo $num1 -gt $num2: num1 大于 num2else echo $num1 -gt $num2: num1 不大于 num2fiif [ $num1 -lt $num2 ]then echo $num1 -lt $num2: num1 小于 num2else echo $num1 -lt $num2: num1 不小于 num2fiif [ $num1 -ge $num2 ]then echo $num1 -ge $num2: num1 大于或等于 num2else echo $num1 -ge $num2: num1 小于 num2fiif [ $num1 -le $num2 ]then echo $num1 -le $num2: num1 小于或等于 num2else echo $num1 -le $num2: num1 大于 num2fi 运行结果为: num1 为: num2 为: -eq : num1 不等于 num2 -ne : num1 不等于 num2 -gt : num1 不大于 num2 -lt : num1 小于 num2 -ge : num1 小于 num2 -le : num1 小于或等于 num (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |