> 文章列表 > 测牛学堂:2023软件测试深入学习linux之shell脚本学习(关系运算符和布尔运算符)

测牛学堂:2023软件测试深入学习linux之shell脚本学习(关系运算符和布尔运算符)

测牛学堂:2023软件测试深入学习linux之shell脚本学习(关系运算符和布尔运算符)

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
常见的关系运算符
-eq 检测两个数字是否相等。相等返回true
-ne 检测两个数是否不相等。不相等返回true
-gt检测左边数字是否大于右边,如果是返回true
-lt 检测左边数字是否小于右边,如果是返回true
-ge检测左边数字是否大于等于右边,如果是返回true
-le 检测左边数字是否小于等于右边,如果是返回ture
代码示例:

test 1 -eq 2
echo $?   #1

注意:
1通过test指令可以测试一个表达式的真假,如果是真返回0,如果是假返回1
2 $? 表示查看上一个命令的返回值
3 比较运算符更多的是使用在条件判断语句中,通过中括号包裹使用。

a=1
b=2
if [$a -eq $b]
then
echo '相等'
else
echo '不相等'
fi

布尔运算符

布尔运算符有三个,非,或,与,常用于判断两个表达式的结果。
! 表达式为真则返回false,表达式为假则返回ture,就是取反操作
-o 或运算,两个表达式有一个为true,则结果就是true
-a 与运算,两个表达式都为ture,结果则返回true
代码实例1:
!的使用,结果是输出F

#!/bin/bash
a=1
b=2
if [ !$a -eq $b ]
then
echo 'T'
else
echo 'F'
fi

代码实例2:
-o 或的使用,$a -eq b 是 f a l s e , 但是 b是false,但是 bfalse,但是a -eq 1是ture, 所以结果仍然为true

#!/bin/bash
a=1
b=2
if [ $a -eq $b -o $a -eq 1 ]
then
echo 'T'
else
echo 'F'
fi

代码实例3:
-a 的使用

#!/bin/bash
a=1
b=2
if [ $a -eq $b -a $a -eq 1 ]
then
echo 'T'
else
echo 'F'
fi