UNIXで同じ変数に複数の値を設定するには?

UNIXで同じ変数に複数の値を設定するには?

複数の単語と単語のバリエーションの出力を提供するスクリプトを取得しようとしています。変数に-oを追加し、単語を引用して、一緒にリンクしてみました。 varnameの各単語は私に出力したい表示単語です。この問題を解決する方法はありますか?または、各変数を個別に設定する必要がありますか?例: varname1=even varname2=Even varname3=EVEN など。

#!/bin/bash

varname1=even -o Even -o EVEN
varrname2=odd -o Odd -o ODD
varname3=zero -o Zero -o ZERO
varname4=negative -o Negative -o 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" = $varname1 ) || ("$varword" = $varname2 ) || ("$varword" = $varname3 ) || ("$varword" = $varname4 ) ]]
then
    echo "The approved word you have selected is $varword, great work! "
else
    echo "The unapproved word you have selected is $varword, Please try again."
fi

ベストアンサー1

echo "Type one of the following words:"
echo "even, odd, zero, negative"
while :; do
  read varword
  varword="${varword,,}" #downcase it
  case "$varword" in
    even|odd|zero|negative)
      echo "The approved word you have selected is $varword, great work! "; break;;
    *)
      echo "The unapproved word you have selected is $varword, Please try again.";;
  esac
done

おすすめ記事