Bash 脚本问题 - 跳过 Enter 按键

1 shell bash shell-script

这是我的脚本的一部分:

read main_menu

case "$main_menu" in

    "0" )   exit
            ;;
    "1" )   cp /etc/bamt/cgminer.conf.X11 /etc/bamt/cgminer.conf;
            sudo mine restart;
            ;;
Run Code Online (Sandbox Code Playgroud)

我怎样才能在用户输入 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
Run Code Online (Sandbox Code Playgroud)

Mic*_*mer 7

Bashread支持许多选项,其中包括-n 1

$ read -n 1 main_menu
1$ echo $main_menu
1
Run Code Online (Sandbox Code Playgroud)

-n选项意味着:

read 读取后返回 nchars 个字符而不是等待完整的输入行,但如果在分隔符之前读取的字符少于nchars 个字符,则使用分隔符。

-n 1告诉read在读取输入的单个字符后返回,因此只要用户按下1thenread就会停止并将输入保存到变量中。