Bash 脚本问题 - 跳过回车键

Bash 脚本问题 - 跳过回车键

这是我的脚本的一部分:

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就会停止并将输入保存到变量中。

相关内容