猿问

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

code如下
bashif[${currentValue}==A]
then
tempValue="$i123"
else
tempValue=$i
fi
为什么[${currentValue}=A]才是更精准的?
函数式编程
浏览 657回答 2
2回答

跃然一笑

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

慕森卡

因为[${currentValue}=A]是bash的标准用法,但bash也不否定==是错误的.可以简单地认为=与==是一样的.所以使用=还是==只是个人习惯问题.至于为什么要用==而非标准的=,是因为C语言的关系,在C中=是赋值的意思,==是逻辑上的等于,由于linux是C写成的,所以用==比较容易接受
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答