从…起
man bash
:
select name [ in word ] ; do list ; done
展开中后面的单词列表,生成项目列表。扩展的单词集打印在标准错误上,每个单词前面都有一个数字。如果省略了输入字,则会打印位置参数(参见下面的参数)。然后显示PS3提示符,并从标准输入读取一行。如果该行由一个对应于所显示单词的数字组成,则名称的值被设置为该单词。如果该行为空,则会再次显示单词和提示。如果读取EOF,则命令完成。
读取的任何其他值都会导致名称设置为空。读取的行保存在变量REPLY中。
列表在每次选择后执行,直到执行中断命令。select的退出状态是列表中执行的最后一个命令的退出状态,如果没有执行任何命令,则为零。
所以只要改变你的
* )
echo "Invalid input: ${opt}"
;;
到
* )
echo "Invalid input: ${REPLY}"
;;