LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 702|回复: 5

如何刷新标准输入缓冲?

[复制链接]
发表于 2003-9-1 21:22:12 | 显示全部楼层 |阅读模式
如下所示:

stty -echo
# 这里有脚本
read input

小弟的意思是如何刷新 stty -echo 之后,read input 之前的输入,也就是在read input之前的所有键盘输入操作都无效,用什么明令实现呢?
发表于 2003-9-1 21:45:20 | 显示全部楼层
把终端复位一下,用reset或者setterm -reset试试看;)
 楼主| 发表于 2003-9-1 22:02:32 | 显示全部楼层
我试了,不行.
发表于 2003-9-5 15:21:20 | 显示全部楼层
在上一个read之后的东西在本个read里面是无效的,不用刷新。
如:read someVar
如果输入了多余的东西,会把它们存到REPLY中,而不会留给下一下read去读取。因此你可以在read input 之前如果有输入的话也用read 完成就可以了。
不知道说得对不对。
发表于 2003-9-5 15:40:28 | 显示全部楼层
最初由 alphatan 发表
在上一个read之后的东西在本个read里面是无效的,不用刷新。
如:read someVar
如果输入了多余的东西,会把它们存到REPLY中,而不会留给下一下read去读取。因此你可以在read input 之前如果有输入的话也用read 完成就可以了。
不知道说得对不对。

也就是说,可以用刚刚read的$REPLY来清除上一个的REPLY吧!我想了想,是不是用unset来清除你刚刚定义的变量呢?
 楼主| 发表于 2003-9-5 23:29:22 | 显示全部楼层
我试一试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表