ksh에서 키보드 버퍼를 지우는 방법은 무엇입니까?

ksh에서 키보드 버퍼를 지우는 방법은 무엇입니까?

저는 사용자 입력을 읽는 Korn 쉘 스크립트를 작성 중입니다. "읽기" 명령을 호출하기 전에 키보드 버퍼를 지워 사용자가 조급하게 입력하여 문제를 일으키지 않도록 하고 싶습니다. 이 대본의 대상 독자는 바로 나 자신이라는 점을 덧붙이고 싶습니다.

답변1

이 시도

read -t 1 garbage;
echo "Are you sure?"
read input

case $input in
    y*|Y*)
        echo "You said yes!"
        ;;
    *)
        echo "You said no!"
        exit 1
        ;;
esac

편집: 방금 이것이 루프에 넣을 수 있는 첫 번째 줄만 제거한다는 것을 깨달았습니다.

while read -t 1 garbage; do
  sleep 0
done

echo "Are you sure?"
read input

case $input in
    y*|Y*)
        echo "You said yes!"
        ;;
    *)
        echo "You said no!"
        exit 1
        ;;
esac

관련 정보