2012-10-17 2 views
0

bash 터미널에서 숫자 키를 사용하여 선택할 수있는 여러 옵션이있는 작은 메뉴를 만들었습니다. 순간 Bash Scripting, Keypress에 응답

#!/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 키를 눌러 선택을 확인해야합니다. 스크립트가 첫 번째 누른 키의 입력에 직접 응답하게 할 수 있습니까?

답변

2

read -n 1 한 문자를 읽습니다. 그래도 select을 사용할 수 없으므로 직접 while 루핑을 작성해야합니다.

1

그래,와 bash (그리고 sh!) 당신은 같은 것을 사용할 수 있습니다

_KEY= 
read -d '' -sn1 _KEY