Bash:遍历数组并在case语句中用作选项



我正在尝试循环遍历一个数组,并为交互式选择设置选项。似乎找不出正确的语法和/或方法。到目前为止,这就是我所拥有的。

array=(red blue green yellow)
PS3='Select option: '
echo "Options are $array"
select opt in "${array[@]}"
do
case $opt in
for c in "${array[@]}" do
export COLOR="${array[$c]}"
break
;;
done
esac
done

不确定我在语法或方法上做错了什么,但我得到了以下错误:

syntax error near unexpected token `c'

预期行为为:

Select choice:
1) red
2) blue
3) green
4) yellow

您不需要for循环或case$opt的值是他们选择的颜色。

select opt in "${array[@]}"
do
if [ "$opt" ]
then export COLOR="$opt"; break
fi
done

最新更新