Bash:遍历数组并在case语句中用作选项
我正在尝试循环一个数组,并为交互式选择设置选项。似乎无法找出正确的语法和/或方法。这是我到目前为止所拥有的Bash:遍历数组并在case语句中用作选项,bash,Bash,我正在尝试循环一个数组,并为交互式选择设置选项。似乎无法找出正确的语法和/或方法。这是我到目前为止所拥有的 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]}" b
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
对于循环或
案例
,您不需要。$opt
的值是他们选择的颜色
select opt in "${array[@]}"
do
if [ "$opt" ]
then export COLOR="$opt"; break
fi
done
对于
循环或案例
,您不需要。$opt
的值是他们选择的颜色
select opt in "${array[@]}"
do
if [ "$opt" ]
then export COLOR="$opt"; break
fi
done
为什么不干脆选择opt-in“${array[@}”do export COLOR=“$opt”break;done
?为什么第二次迭代数组?有什么原因吗?您现在已经选择了选项,它在opt
中。为什么不干脆选择opt-in“${array[@}”do export COLOR=“$opt”;break;done
?为什么第二次迭代数组?有原因吗?您现在已经选择了选项,它位于opt
中。