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 11 文字を読み取ります。selectただし、それを使用することはできないため、whileループを自分で作成する必要があります。

于 2012-10-17T11:06:50.183 に答える
1

うん、bash(ではなくsh!)次のようなものを使用できます:

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