以下を含むテキスト ファイルsport.txtを読み込もうとしています。ユーザー入力をテキスト ファイルにあるスポーツ名と一致させようとしています。
見つかった場合は「スポーツが見つかりました」と出力され、見つからなかった場合は「スポーツが見つかりません」と出力されます。
最初に示した例は、ランダムな単語をキー入力しようとしてエラーが表示されるまでは、ほぼ完璧に見えます。
[: ==: 単項演算子が必要です
2 番目の例の変数にも を使用して""
みましたが、テキスト ファイルのスポーツ名と正確に一致するスポーツ名を入力したにもかかわらず、「スポーツが見つかりません」と出力されます。
ファイルsports.txt
cycling
swimming
batmintion
コード (例 1)
#!/bin/bash
file="sports.txt"
read -p "Enter a sports name": sportsName
existingSports=$(grep $sportsName $file);
if [ $existingSports == $sportsName ]; then
echo "Sports Found"
else
echo "No Sports Found"
fi
上記のコードで「水泳」ベースをキー入力すると、出力は次のようになります。
スポーツファウンド
「swim」とキー入力すると、出力は次のようになります。
スポーツが見つかりません
そして、ランダムな単語「asd」をキー入力すると、出力は次のようになります。
[: ==: 単項演算子が必要です
スポーツが見つかりません
コード (例 2)
#!/bin/bash
file="sports.txt"
read -p "Enter a sports name": sportsName
existingSports=$(grep $sportsName $file);
if [ "$existingSports" == "$sportsName" ]; then
echo "Sports Found"
else
echo "No Sports Found"
fi
上記のコードに基づいて「水泳」ベースをキー入力すると、出力は次のようになります。
スポーツが見つかりません
「swim」とキー入力すると、出力は次のようになります。
スポーツが見つかりません
コード (例 3)
#!/bin/bash
file="sports.txt"
read -p "Enter a sports name": sportsName
existingSports=$(grep $sportsName $file);
if [[ "$existingSports" == "$sportsName" ]]; then
echo "Sports Found"
else
echo "No Sports Found"
fi
上記のコードで「水泳」ベースをキー入力すると、出力は次のようになります。
スポーツが見つかりません
「swim」とキー入力すると、出力は次のようになります。
スポーツが見つかりません
前述のように、最初の例は予想にほぼ近いものです。エラーメッセージを取り除くにはどうすればよいですか?