Shell test命令的关系运算
test命令的关系运算主要用于if语句。
Shell提供test命令进行判断,[ ]是test命令等价写法。平时使用[ ]更多。
详情可查看帮助
man test
test命令语法
test 表达式
test与表达式之间用空格分开。
变态的返回结果
0真1假。
因为test命令通过退出状态来返回值:
退出状态为0表示表达式为真;
退出状态为1表示表达式为假。
[ ]语法
[ 表达式 ]
test的等价写法。
表达式的前后必须保留空格。
表达式中的关系运算有自己专门的语法。
test命令的关系运算
条件判断的关系运算 | 说明 |
---|---|
-eq | 判断是否相等 |
-ne | 判断是否不相等 |
-gt | 判断是否大于 |
-lt | 判断是否小于 |
-ge | 判断是否大于等于 |
-le | 判断是否小于等于 |
不用if调用进行测试
本节内容主要用于if语句,因可能还没学习if语句。
本节执行方法:先直接执行命令,通过$?查看命令的返回状态。
示例
例1:直接在终端每句依次执行。(懒得写文件)
[ 1 -eq 2 ]
echo $?
[ 1 -ne 2 ]
echo $?
$?返回1说明表达式为假,返回0说明表达式为真。
例2:使用test
test 1 -eq 2
echo $?
test 1 -ne 2
echo $?
例3:if语句使用关系运算
文件 05relational-02if.sh
#!/bin/bash
#test命令中的关系运算
if [ 2 -eq 1 ]
then
echo "2==1"
else
echo "2==1不成立"
fi
if test 1 -eq 1
then
echo "1==1"
else
echo "1==1不成立"
fi