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

Java 为什么bash字符串比较不再等于true,java,bash,solaris,Java,Bash,Solaris,我有一个java配置文件,其中包含以下条目 Success=true 突然之间,这种比较似乎并不等于布尔真 if [ "$Success" == "true" ];then //do something fi 我已经检查了窗口的行尾和空格。这是Bash5.0.17,它是相当新的。它在Solaris上运行。看起来很简单,如果可能的话,我们不想编辑脚本。还有什么其他解释呢?允许使用==进行比较,但是 将=运算符与test[命令一起使用 在[[命令]中使用

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

Success=true
突然之间,这种比较似乎并不等于布尔真

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

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

允许使用==进行比较,但是

  • 将=运算符与test[命令一起使用
  • 在[[命令]中使用==运算符进行模式匹配
因此,修复可能是这样的:

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


set-xv
显示了什么?我真的看不出Java有什么直接的相关性。配置中的条目如何进入变量
$Success
?这不仅仅是魔术。有些东西正在解析行,将其拆分为键和值等。您需要显示这样做的代码,或者解释库在做什么。
if [[ "$Success" == "true" ]]; then
  //do something
fi