为什么bash字符串比较不再等于true



我有一个java配置文件,其中包含以下条目

Success=true

突然之间,这种比较似乎并不等同于布尔值为真。

if [ "$Success" == "true" ];then
//do something
fi

我已经检查了Windows的行尾和空格。这是bash 5.0.17,它是相当新的。它在Solaris上运行。看起来很简单,如果可能的话,我们不想编辑脚本。还有什么其他解释?

使用==进行比较是允许的,但不是标准的。

  • 在test[命令中使用=运算符
  • 使用==运算符和[[命令进行模式匹配

所以修复可能是这样的:

if [ "$Success" = "true" ]; then
//do something
fi

if [[ "$Success" == "true" ]]; then
//do something
fi

最新更新