一、 &&运算符
&&运算符用于判断两个条件都为真时执行后续操作。
例如:
$ a=10
$ b=20
$ if [ $a -lt 100 ] && [ $b -gt 15 ]
> then
> echo "条件成立,执行后续操作"
> fi
条件成立,执行后续操作
上述代码中,判断变量a是否小于100且变量b是否大于15,两个条件都为真,所以执行后续操作。
二、 ||运算符
|| 运算符用于判断两个条件只要有一个为真,则执行后续操作。
例如:
$ a=10
$ b=20
$ if [ $a -gt 100 ] || [ $b -gt 15 ]
> then
> echo "条件成立,执行后续操作"
> fi
条件成立,执行后续操作
上述代码中,判断变量a是否大于100或者变量b是否大于15,其中条件b>15为真,所以执行后续操作。
三、 !运算符
! 运算符用于将真变假,假变真。
例如:
$ a=10
$ b=20
$ if [ ! false ]
> then
> echo "false变成了true"
> fi
false变成了true
$ if [ ! $a -eq 10 ]
> then
> echo "a不等于10"
> fi
没有执行后续操作,因为a等于10
上述代码中,第一个示例中,! false语句的结果为真,所以执行后续操作。
第二个示例中,判断变量a是否等于10,由于a等于10,所以 ! $a -eq 10的结果为假,没有执行后续操作。
四、逻辑运算符的优先级
当Shell语句中同时使用多种逻辑运算符时,需要注意它们的优先级。
逻辑运算符的优先级从高到低依次为 !、&&、||。举个例子:
$ a=10
$ b=20
$ if [ ! $a -eq 10 ] || [ $b -gt 15 ] && [ $a -lt 5 ]
> then
> echo "条件成立,执行后续操作"
> fi
没有执行后续操作,因为只有 ! $a -eq 10 为假
上述代码中,逻辑运算符的优先级为 ! > && > ||,即先执行 ! $a -eq 10,再执行 $b -gt 15 && $a -lt 5。由于 $a 等于10,所以 ! $a -eq 10 的结果为假,没有执行后续操作。
五、小结
逻辑运算符可以帮助Linux运维工程师在Shell脚本中实现逻辑判断和流程控制。了解并熟练掌握Shell中的逻辑运算符,对于提高Shell脚本程序的效率和自动化程度都有很大的帮助。其中,&& 运算符用于判断两个条件都为真时执行后续操作,|| 运算符用于判断两个条件只要有一个为真,则执行后续操作,!运算符用于将真变假,假变真。