我目前有一个案例陈述,其中我定义了每个选项0-10,但我发现它杂乱无章。我认为使用for循环会起作用,但是当我说,选择选项1时,它会给出正确的输出,但也会列出几个"无效选项..
PS3='Please enter your choice: '
options=("${var[@]}" "Quit")
select opt in "${options[@]}"
do
case $opt in
"${var[0]}")
echo "${cmd[0]}"
;;
"${var[1]}")
echo "${cmd[1]}"
;;
"${var[2]}")
echo "${cmd[2]}"
;;
"${var[3]}")
echo "${cmd[3]}"
;;
"${var[4]}")
echo "${cmd[4]}"
;;
"${var[5]}")
echo "${cmd[5]}"
;;
"${var[6]}")
echo "${cmd[6]}"
;;
"${var[7]}")
echo "${cmd[7]}"
;;
"${var[8]}")
echo "${cmd[8]}"
;;
"${var[8]}")
echo "${cmd[8]}"
;;
"${var[9]}")
echo "${cmd[9]}"
;;
"${var[10]}")
echo "${cmd[10]}"
;;
"Quit")
break
;;
*) echo invalid option;;
esac
done
done
这是我试过的:
PS3='Please enter your choice: '
options=("${var[@]}" "Quit")
select opt in "${options[@]}"
do
for (( i=0; i<=10; i++ )) ; do
case $opt in
"${var[${i}]}")
echo "${cmd[${i}]}"
;;
"Quit")
break
;;
*) echo invalid option;;
esac
done
done
也许我只是错误地使用了for循环,我们非常感谢任何指导!