次のbashスクリプトがあります。
#!/bin/bash
echo "Enter your name: "
read name
if [ ${name}=="sam" ]
then
echo "Hi Sam!"
else
echo "Who the hell are you?"
fi
入力した名前が「sam」でない場合は、「一体あなたは誰ですか?」と表示したいと思います。ところで、任意の文字列を入力しても「Hi Sam!」と表示されます。
ここで問題は何ですか?
答え1
[ ]
などの条件式を使用するためのbashチュートリアルとマニュアルを読んでくださいtest
。
簡単に言うと:
- あえて使う必要はなく
==
、=
それだけで十分です。 - 前後にスペースを追加する必要があります
=
。それ以外の場合は、比較を実行するのではなく、式の右側の部分を左側の部分に割り当てます。 - 変数参照
最終結果:
if [ "${name}" = "sam" ]