code如下bashif[${currentValue}==A]thentempValue="$i123"elsetempValue=$ifi为什么[${currentValue}=A]才是更精准的?
2 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
因为当初POSIX标准是这么规定的(你可以mantest看看)。但实际上大部分实现都支持==的。如果你的脚本想要可移植性的话请使用=。如果你的脚本只支持bash的话请使用[[关键字以及==操作符([是一个也叫作test的命令,大部分shell都会有内建版本)。zsh是推荐在它的[[关键字里使用==而非=的。PS:SQL也是用=表示相等的。使用==表示相等据说是因为=被C用来表示赋值了,而C用=表示赋值是因为赋值语句比相等判断语句出现得更多,这样子可以每次赋值时节约一字节内存。
慕森卡
TA贡献1806条经验 获得超8个赞
因为[${currentValue}=A]是bash的标准用法,但bash也不否定==是错误的.可以简单地认为=与==是一样的.所以使用=还是==只是个人习惯问题.至于为什么要用==而非标准的=,是因为C语言的关系,在C中=是赋值的意思,==是逻辑上的等于,由于linux是C写成的,所以用==比较容易接受
添加回答
举报
0/150
提交
取消