4単語スクリプトを要求してから、ユーザーに選択した単語を伝えます。出力エラー?

4単語スクリプトを要求してから、ユーザーに選択した単語を伝えます。出力エラー?

私は4つの単語を必要とするスクリプトを書く必要がある小さな課題を実行しています。

私の問題は、私の出力で答えとして誤った説明を提供しないことです。 ifに入力した内容はすべてtrueで、最初に承認されたエコーステートメントを提供します。変数の設定に問題があるか、かっこに問題がありますか?私は完全なifセクションのさまざまなバリエーションを試しましたが、エラー出力を削除できないようです。また、構文チェックソースとしてシェルチェックを使用しましたが、スクリプトが正しく実行されていることを示しています。どんな助けでも大変感謝します。これが私が書いたものです。

#!/bin/bash
varname1=even
varname2=odd
varname3=zero
varname4=negative

# Ask the user for one of four select words
echo "Type one of the following words:"
echo "even, odd, zero, negative"
read varword
if [[ ("$varword" -eq $varname1 ) || ("$varword" -eq $varname2 ) || ("$varword" -eq $varname3 ) || ("$varword" -eq $varname4 ) ]]
then
    echo "The approved word you have selected is $varword ."
else
    echo "The unapproved word you have selected is $varword . Please try again."
fi

ベストアンサー1

=代わりに文字列比較に使用されます-eq

if [[ ("$varword" = "$varname1" ) || ("$varword" = "$varname2" ) || ("$varword" = "$varname3" ) || ("$varword" = "$varname4" ) ]]

または正規表現を使用してください。

if [[ $varword =~ ^(even|odd|zero|negative)$ ]] ; then

おすすめ記事