以下のコードが期待どおりに機能することを考慮してください。
if [[ $SOME_VARIABLE = "TRUE" ]]; then
echo "Only echoed when \$SOME_VARIABLE stores string \"TRUE\"."
fi
しかし、等値演算子を囲むスペースを削除すると、常に 0 の終了ステータスと評価されます (少なくとも、true と見なされるため、返される必要があると想定しています)。
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.
アップデート:
概要:
- 使い方は上記
=
と同じですが、==
廃止されました。 - 常にあなたのスペースを気にしてください。