이것은 내 스크립트의 일부입니다.
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
되고 입력이 변수에 저장됩니다.