ユーザー入力の有効性をチェックするスクリプトをbashで記述しようとしています。
入力(たとえばvariable x
)を有効な値のリストと照合したい。
私が現時点で思いついたのは:
for item in $list
do
if [ "$x" == "$item" ]; then
echo "In the list"
exit
fi
done
私の質問は、これを行う簡単な方法があるかどうかです。これは、ほとんどのプログラミング言語に
似てlist.contains(x)
います。
追加:
リストは次のとおりです:
list="11 22 33"
私のコードはlist
、文字列ではなく配列として扱われるため、これらの値についてのみメッセージをエコーします。すべての文字列操作は検証されますが1
、失敗することになります。
[[ $list =~ (^| )$x($| ) ]] && echo 'yes' || echo 'no'