code如下
bash
if [ ${currentValue}==A ] then tempValue="$i 123" else tempValue=$i fi
为什么[ ${currentValue} = A ]才是更精准的?
code如下
bash
if [ ${currentValue}==A ] then tempValue="$i 123" else tempValue=$i fi
为什么[ ${currentValue} = A ]才是更精准的?
因为[ ${currentValue} = A ]
是bash的标准用法,但bash也不否定==是错误的.可以简单地认为=与==是一样的.所以使用=还是==只是个人习惯问题.
至于为什么要用==而非标准的=,是因为C语言的关系,在C中=是赋值的意思,==是逻辑上的等于,由于linux是C写成的,所以用==比较容易接受
因为当初 POSIX 标准是这么规定的(你可以
man test
看看)。但实际上大部分实现都支持 == 的。如果你的脚本想要可移植性的话请使用 =。如果你的脚本只支持 bash 的话请使用[[
关键字以及==
操作符([
是一个也叫作test
的命令,大部分 shell 都会有内建版本)。zsh 是推荐在它的
[[
关键字里使用 == 而非 = 的。PS: SQL 也是用 = 表示相等的。使用 == 表示相等据说是因为 = 被 C 用来表示赋值了,而 C 用 = 表示赋值是因为赋值语句比相等判断语句出现得更多,这样子可以每次赋值时节约一字节内存。