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 $?

img

$?返回1说明表达式为假,返回0说明表达式为真。


例2:使用test

test 1 -eq 2
echo $?
test 1 -ne 2
echo $?

img


例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

img