Почему следующее условие IF в ksh всегда оценивается как true?
Обратите внимание, что приведенный ниже код работает как положено:
if [[ $SOME_VARIABLE = "TRUE" ]]; then
echo "Only echoed when \$SOME_VARIABLE stores string \"TRUE\"."
fi
Но когда я удаляю пробел вокруг оператора равенства, он всегда оценивается как 0 из состояния выхода (по крайней мере, это 's, что я предполагаю, что это должно возвращаться, поскольку это взято как истина):
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.
ОБНОВИТЬ:
Резюме:
С помощью=
такой же как==
выше, но устарел.ВСЕГДА следите за своим пространством.