我正在编写一个 Korn shell 脚本,它将读取用户的输入。我想在调用“read”命令之前清除键盘缓冲区,这样用户就不会因不耐烦地提前输入而导致问题。我想补充一点,这个剧本的目标受众是我自己。
答案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