考虑一下,下面的代码按预期工作:
if [[ $SOME_VARIABLE = "TRUE" ]]; then
echo "Only echoed when \$SOME_VARIABLE stores string \"TRUE\"."
fi
但是当我删除相等运算符周围的空间时,它总是评估为 0 退出状态(至少这是我认为它必须返回的,因为它被认为是真的):
if [[ $SOME_VARIABLE="TRUE" ]]; then
echo "Always true."
fi
更新:
只是为了确认问题是否出在相等运算符上:
#!usr/bin/ksh
SOME_VARIABLE=FALSE
if [[ $SOME_VARIABLE == "TRUE" ]]; then
echo "Only echoed when \$SOME_VARIABLE stores string \"TRUE\"."
fi
if [[ $SOME_VARIABLE=="TRUE" ]]; then
echo "Always true."
fi
[kent@TEST]$ sh test.sh
Always true.
更新:
概括:
- 使用与上面
=
相同==
,但已过时。 - 始终注意您的空间。