您的位置:

掌握Shell中的逻辑运算符

一、 &&运算符

&&运算符用于判断两个条件都为真时执行后续操作。

例如:

$ 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脚本程序的效率和自动化程度都有很大的帮助。其中,&& 运算符用于判断两个条件都为真时执行后续操作,|| 运算符用于判断两个条件只要有一个为真,则执行后续操作,!运算符用于将真变假,假变真。