Bash 스크립트 문제 - Enter 키를 건너뛰었습니다.

Bash 스크립트 문제 - Enter 키를 건너뛰었습니다.

이것은 내 스크립트의 일부입니다.

read main_menu

case "$main_menu" in

    "0" )   exit
            ;;
    "1" )   cp /etc/bamt/cgminer.conf.X11 /etc/bamt/cgminer.conf;
            sudo mine restart;
            ;;

사용자가 키를 누를 필요가 없도록 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

답변1

배쉬 read지원옵션 수, 그중 -n 1:

$ read -n 1 main_menu
1$ echo $main_menu
1

-n옵션의 의미는 다음과 같습니다.

읽기는 읽은 후에 반환됩니다.nchars입력의 전체 행을 기다리는 대신 문자가 있지만 그보다 적은 경우nchars구분 기호 앞의 문자를 읽습니다.

-n 1입력의 단일 문자를 읽은 후 반환하도록 지시 read하므로 사용자가 누르면 1중지 read되고 입력이 변수에 저장됩니다.

관련 정보