case
を使用して、変数が配列内に含まれているかどうかを確認することはできますか?私は何かしたいです
ARR=( opt1 opt2 opt3 );
case $1 in
$ARR)
echo "Option is contained in the array";
*)
echo "Option is not contained in the array";
esac
実際にはコンパクトで使いやすい方法ではありません。 $ARR
は、配列の最初の要素、例ではopt1
のみに展開されることに注意してください。
"${ARR[@]}"
を使用することもできますが、データを使用すると、文字列1 opt
が誤検知されます。
bash
の最新バージョンでは、連想配列の使用を検討できます。
declare -A arr
arr=( [opt1]=1 [opt2]=1 [opt3]=1 )
if [[ "${arr[$1]}" -eq 1 ]]; then
# $1 is a key in arr
else
# is not
fi