Bashのif文条件の問題

Bashのif文条件の問題

次の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

簡単に言うと:

  1. あえて使う必要はなく===それだけで十分です。
  2. 前後にスペースを追加する必要があります=。それ以外の場合は、比較を実行するのではなく、式の右側の部分を左側の部分に割り当てます。
  3. 変数参照

最終結果:

if [ "${name}" = "sam" ]

関連情報