这是我的脚本的一部分:
read main_menu
case "$main_menu" in
"0" ) exit
;;
"1" ) cp /etc/bamt/cgminer.conf.X11 /etc/bamt/cgminer.conf;
sudo mine restart;
;;
我怎样才能让用户输入 0 或 1、2 等后,他不必按键Enter?实际上,当您输入数字时,它会直接跳转到下一个菜单或功能,而无需按Enter。
你能帮我在这里实现它吗?
while :
do
echo -e "\n Test script"
echo -e "\t (0) Exit"
echo -e "\t (1) Option 1"
echo -n "Enter choice:"
read main_menu
case "$main_menu" in
"0" ) exit
;;
"1" ) exit
;;
esac
done
答案1
Bashread
支持选项数量, 他们之中-n 1
:
$ read -n 1 main_menu
1$ echo $main_menu
1
该-n
选项的含义是:
read 读取后返回nchars字符而不是等待完整的输入行,但如果少于nchars在分隔符之前读取字符。
-n 1
告诉read
在读取输入的单个字符后返回,因此一旦用户按下1thenread
就会停止并将输入保存到变量中。