LinuxSir.cn,穿越时空的Linuxsir!

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

考考你:如何处理键盘输入超时[讨论]

[复制链接]
发表于 2004-1-3 14:07:27 | 显示全部楼层 |阅读模式
问题:在shell中如果一段时间(如30秒)内没有键盘输入,那么执行一个程序?
格式如:urscript&
将程序的结果输出到前台
发表于 2004-1-3 14:46:46 | 显示全部楼层
不懂, 怎樣做的?
发表于 2004-1-3 15:35:07 | 显示全部楼层
STDIN == NULL  :ask:ask
发表于 2004-1-3 16:01:27 | 显示全部楼层
read --help
 楼主| 发表于 2004-1-3 17:09:11 | 显示全部楼层
我是想写一个字符模式下屏幕保护的脚本,就是放在后台,如果比如30分钟没有接受键盘的输入,那么就执行我的程序,我用了read -t,BASH有,我的KSH没有这个-t选项,也用了TMOUT,REPLY等等,结果都不理想~~,再试试看吧!
 楼主| 发表于 2004-1-5 13:34:04 | 显示全部楼层
没人理 ,我先来!
  1. #!/bin/ksh
  2. while true;do
  3.         sleep 300
  4.         while true;do
  5.                case $REPLY in
  6.                         "")             [color=red]command[/color]&&continue 2;;
  7.                         *)      $REPLY&&continue 2;;       
  8.                 esac       
  9.         done
  10. done
复制代码
可以放在/etc/rc.d/rc.local文件中,这样每隔300秒就执行command
用stty和read也可以实现.不过好像要对signal处理.
用stty的例子在
http://www.linuxsir.cn/bbs/showt ... 15&pagenumber=4
<<限时输入>>
bash的可以用read -t sec来判断REPLY.
 楼主| 发表于 2004-1-5 15:16:00 | 显示全部楼层
上述脚本如果把command换成apmsleep 00:00,再加上对登录用户的判断,就是一个简单的屏保啦~~
发表于 2004-1-5 20:04:26 | 显示全部楼层
這就可以了~~?
 楼主| 发表于 2004-1-5 21:57:06 | 显示全部楼层
最初由 georgek 发表
這就可以了~~?

可不可以,让实验结果说话嘛~~ ,,;)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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