首页 > 解决方案 > 如何在 If 语句中比较 shell 中的 2 个布尔变量

问题描述

这是场景:

# Initialization 
var1=true
var2=true

#
#
#
var1=false
var2=false 
#
#

if [[var1==false && var2==false]]
then
   echo "Both vars are false"
fi

无论 var1 和 var2 中的值是什么,程序都在进入 if 语句。我如何解决它?

标签: bashif-statementsyntax-error

解决方案


使用 '[[' 条件表达式,表达式的元素需要作为单独的标记输入,用空格分隔。此外,变量需要以“$”为前缀。可以通过在引用变量时添加“$”并分隔“[[”来修复条件。']]' 和 '==' 带空格

if [[ $var1 == false && $var2 == false ]]
then
   echo "Both vars are false"
fi

推荐阅读