当前位置: 首页 > 知识库问答 >
问题:

为什么bash字符串比较停止等于true

齐胜涝
2023-03-14

我有一个包含以下条目的Java配置文件

Success=true

这是一个编入工作了6年的罐子的资源。突然之间,这种比较似乎并不等同于布尔真。

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

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

共有1个答案

傅振濂
2023-03-14

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

  • 在test[命令中使用=运算符。
  • 在[[命令用于模式匹配。
  • 中使用==运算符

因此修复可能是这样的:

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

if [[ "$Success" == "true" ]]; then
  //do something
fi
 类似资料:
  • 问题内容: 我有一个Android应用程序,我想检查安装的应用程序名称是否与传递给包含此代码的函数的字符串匹配。代码和示例如下: 假设您打过电话,并且手机上的应用程序名称与返回的名称相同。但是,它永远不会。我记录了结果,它应该匹配,但事实并非如此。任何人都可以请问我为什么这行不通吗? 问题答案: 使用String的equals()方法代替==运算符来比较字符串: 在Java中,新手遇到的最常见错误

  • 问题内容: 如果我正在从文本中扫描 //我想将行中的下一个char与 // 像这样: 我知道那不存在,但是在这种情况下可以使用任何类似的东西吗? 问题答案: 您的代码将类似于… 请注意,在调用之后,实际上已获取了该值,因此,如果您想进一步使用它,最好保留该变量,例如:

  • 问题内容: 我有以下代码: 旨在将物料价格初始化为0,然后获取有关其的信息。如果价格被告知为“ e”,则表示交换而不是卖出,其作为负数存储在数据库中。 也有可能将价格保留为0,这是因为该项目是奖励商品,或者是因为价格将在以后设置。 但是,每当未设置价格时,其初始值将为0,则上述循环将评估为true,并将价格设置为-1。也就是说,它认为0等于“ e”。 如何解释呢? 当价格提供为0(初始化后)时,该

  • 当我跑的时候 在shell中,它返回。为什么?它应该是?当我跑的时候 它返回。

  • 问题内容: 我注意到,在相同的字符串中添加空格会使它们使用比较不相等,而非空格版本则比较相等。 我已经阅读了有关将字符串与和进行比较的问题。我认为这是一个不同的问题,因为空格字符正在改变行为,而不是字符串的长度。看到: 为什么在字符串中添加空格会更改此比较的结果? 问题答案: python解释器根据某些条件缓存一些字符串,第一个字符串被缓存并用于两者,而第二个则不。从in到int的小整数也是一样。

  • 问题内容: 我从书中看到以下代码: 但没有提到为什么“一个”大于“四个”。我试过了,它小于a和b。我想知道JavaScript如何比较这些字符串。 问题答案: 因为和许多编程语言一样,字符串是按字典顺序进行比较的。 你可以认为这是一个空想家版本的字母顺序,区别在于字母排序仅覆盖了26个字符通过。