gpt4 book ai didi

bash - 为什么在 bash 比较运算符周围添加空格会改变结果?

转载 作者:行者123 更新时间:2023-11-29 08:53:59 25 4
gpt4 key购买 nike

有人可以解释为什么 == 周围的空格会改变比较结果吗?以下内容:

if [[ 1 == 2 ]] ; then echo ok ; fi

什么都不打印,而

if [[ 1==2 ]] ; then echo ok ; fi

打印ok

最佳答案

“1==2”是一个 4 字符的字符串,不是涉及 == 运算符的表达式。在条件表达式 [[ ... ]] 的上下文中,非空字符串的计算结果始终为真。 == 运算符周围必须有空格。

bash 中的所有内容一样,[[ ... ]] 的内容只是一个以空格分隔的参数列表。 bash 语法不知道如何解析条件表达式,但它知道如何解释 3 个参数的列表,例如 1==2[[ ... ]] 复合命令的上下文中。

关于bash - 为什么在 bash 比较运算符周围添加空格会改变结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com