为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在if表达式中应该使用=而不是使用==

为什么在if表达式中应该使用=而不是使用==

函数式编程 2019-04-16 20:27:30
code如下bashif[${currentValue}==A]thentempValue="$i123"elsetempValue=$ifi为什么[${currentValue}=A]才是更精准的?
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

因为当初POSIX标准是这么规定的(你可以mantest看看)。但实际上大部分实现都支持==的。如果你的脚本想要可移植性的话请使用=。如果你的脚本只支持bash的话请使用[[关键字以及==操作符([是一个也叫作test的命令,大部分shell都会有内建版本)。
zsh是推荐在它的[[关键字里使用==而非=的。
PS:SQL也是用=表示相等的。使用==表示相等据说是因为=被C用来表示赋值了,而C用=表示赋值是因为赋值语句比相等判断语句出现得更多,这样子可以每次赋值时节约一字节内存。
                            
查看完整回答
反对 回复 2019-04-16
?
慕森卡

TA贡献1806条经验 获得超8个赞

因为[${currentValue}=A]是bash的标准用法,但bash也不否定==是错误的.可以简单地认为=与==是一样的.所以使用=还是==只是个人习惯问题.
至于为什么要用==而非标准的=,是因为C语言的关系,在C中=是赋值的意思,==是逻辑上的等于,由于linux是C写成的,所以用==比较容易接受
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 656 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信