如何在BASH中执行布尔运算(外部条件)

如何在BASH中执行布尔运算(外部条件)

关于如何在条件下执行布尔运算有 20 个问题/答案:

if [ 4 -gt 3 ] && [ 3 -gt 2 ]; then echo "True"; else echo "False"; fi

但是如何独立执行布尔运算呢?

我正在寻找相当于以下代码的东西:

bool a=true, b=false, c=true;
bool r1 = a && b;
bool r2 = a && (b || c);

在 bash 中,它应该是这样的:

a=1;b=0;c=1
r1=`expr a && b`
r2=`expr a && ( b || c )`

答案1

使用$(( ))构造

man bash参阅“算术评估”

shell 允许在某些情况下对算术表达式进行求值(请参阅let 和declare 内置命令、(( 复合命令和算术扩展)。

r1=$((a && b))
r2=$((a && ( b || c )))
echo $1
0
echo $2
1

笔记

  • that&是按位,而 while&&是逻辑

  • 0≠0恢复到传统/数学0/假≠0/真值(与 unix 返回码不同)

     b=$(( 7 & 5 ))
     echo $b
     5
     l=$(( 7 && 5 ))
     echo $l
     1
    

相关内容