0

我构建了一个小菜单以在 bash 终端中使用,其中有多个选项可通过数字键进行选择。

#!/bin/bash
PS3='Teleport to ... '
options=("→ option 1" "→ option 2" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "→ option 1")
            echo "option 1"
            break
            ;;
        "→ option 2")
            echo "option 2"
            break
            ;;
        "Quit")
            break
            ;;
        *) echo invalid option
            break
            ;;
    esac
done

目前我仍然需要按enter确认选择。是否可以让脚本直接响应第一个按键的输入?

4

2 回答 2

2

read -n 1读取一个字符。但是,您不能使用select它,因此您必须自己编写while循环。

于 2012-10-17T11:06:50.183 回答
1

是的,使用bash(而不是sh!)您可以使用以下内容:

_KEY=
read -d '' -sn1 _KEY
于 2012-10-17T11:09:24.380 回答