Bash Scripting,回应Keypress

时间:2012-10-17 10:51:13

标签: bash terminal

我构建了一个小菜单,用于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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

_KEY=
read -d '' -sn1 _KEY