我希望决定是否在Bash的[[
测试中始终省略变量的引号。我解释man
页面,认为这样做是可以的,而且不会有任何损失。
我设计了这个简单的“测试”来验证我的想法和“预期行为”,但它可能毫无意义,请看一下:
x='1 == 2 &&'
if [[ $x == '1 == 2 &&' ]]; then
echo yes
else
echo no
fi
请注意,我并不是在这样写:
x='1 == 2 &&'
if [[ "$x" == '1 == 2 &&' ]]; then
echo yes
else
echo no
fi
迄今为止,出于一致性的考虑,我总是采用这种风格。
在[[
测试中,总是省略变量周围的引号安全吗?
我正在尝试学习Bash,并试图养成良好的习惯、良好的风格和正确性。
x="Now is"
,y="[nN]ow*"
,则[[ $x == "$y" ]]
为假,而[[ $x == $y ]]
为真。这可能会在某些情况下对你有影响。 - William