当前位置: 技术问答>linux和unix
如何清空标准键盘输入流?
来源: 互联网 发布时间:2017-01-25
本文导语: #!/bin/bash echo "begain" #....... #....... #....... echo "end" echo -n "reboot system now? (n|y) : " read answer if [ "$answer" = "y" ] then reboot else echo "reboot later, your input is : $answer" fi 问题: 假设在打印“begain”和...
#!/bin/bash
echo "begain"
#.......
#.......
#.......
echo "end"
echo -n "reboot system now? (n|y) : "
read answer
if [ "$answer" = "y" ]
then
reboot
else
echo "reboot later, your input is : $answer"
fi
问题:
假设在打印“begain”和“end”之间用户不小心碰到键盘,输入了字符,那么用户输入“y”后,系统也不会重启。
例如:
假设不小心碰到了“0”,则会打印:
begain
.....(略)不小心碰到了“0”键
end
reboot system now? (n|y) : y
reboot later, your input is : 0y
如何处理意外输入:
我想在打印“end”之后,请空键盘的输入终端,本例中,即需要清空“0”这个字符。该如何办不到?
echo "begain"
#.......
#.......
#.......
echo "end"
echo -n "reboot system now? (n|y) : "
read answer
if [ "$answer" = "y" ]
then
reboot
else
echo "reboot later, your input is : $answer"
fi
问题:
假设在打印“begain”和“end”之间用户不小心碰到键盘,输入了字符,那么用户输入“y”后,系统也不会重启。
例如:
假设不小心碰到了“0”,则会打印:
begain
.....(略)不小心碰到了“0”键
end
reboot system now? (n|y) : y
reboot later, your input is : 0y
如何处理意外输入:
我想在打印“end”之后,请空键盘的输入终端,本例中,即需要清空“0”这个字符。该如何办不到?
|
再多一步好了,用户输入后让用户确认是否执行刚才的操作,如何输入正确就执行reboot,否则重新输入
|
在read answer之前加入一句read -t 0 -n 10000 garbage