【Linux】shell中的逻辑运算符 和 布尔运算符

概述

[[]]中的逻辑运算符使用 && 、|| ,推荐使用这种方式
[] 中的逻辑运算符使用 -a (表示and )、-o (表示or)

[[]]形式

逻辑运算本质是 运算符的两侧是2个 真假的判断条件,置于内容是字符串的判断还是数字的判断,都可以。

以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20,注意示例是是双括号 :

运算符 说明 举例
&& 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| 逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true

示例:

#!/bin/bash


a=10
b=20

if [[ $a -lt 100 && $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"    #打印
fi

if [[ $a -lt 100 || $b -gt 100 ]]
then
   echo "返回 true"      #打印
else
   echo "返回 false"
fi

[] 形式

在单括号中,可以进行布尔运算,但是其中也包含逻辑与 、逻辑或语法

下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:

运算符 说明 举例
! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
-o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。

示例:

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

a=10
b=20

if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"     #执行打印 
else
   echo "$a == $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "$a 小于 100 且 $b 大于 15 : 返回 true"     #执行打印 
else
   echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "$a 小于 100 或 $b 大于 100 : 返回 true"       #执行打印 
else
   echo "$a 小于 100 或 $b 大于 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
   echo "$a 小于 5 或 $b 大于 100 : 返回 true"
else
   echo "$a 小于 5 或 $b 大于 100 : 返回 false"        #执行打印 
fi

猜你喜欢

转载自blog.csdn.net/m0_45406092/article/details/129101034