当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-10 12:14 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
要实现的效果:
屏幕上打印出并自动刷新倒计时提示,如“还剩 XX 秒关机……”,同时可以接受用户按任意键结束倒计时退出。

怎么实现起来最简单呢? :em68


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-10 15:45 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
一个简单但不精确的方法:
代码:
n=30
while true; do
    echo -n -e "\r还剩 $((n--)) 秒关机 ....  "
    read -esr -n1 -t1 && break
    [ $n -eq 0 ] && echo -e "\n正在关机"&& break
done

实际使用时把 [$n -eq 0] 后面的命令改为关机命令。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-10 22:08 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
aerofox 写道:
一个简单但不精确的方法:
代码:
n=30
while true; do
    echo -n -e "\r还剩 $((n--)) 秒关机 ....  "
    read -esr -n1 -t1 && break
    [ $n -eq 0 ] && echo -e "\n正在关机"&& break
done

实际使用时把 [$n -eq 0] 后面的命令改为关机命令。


学习了,强大的read……


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-11 11:38 
头像

注册: 2007-08-05 17:40
帖子: 4968
送出感谢: 0 次
接收感谢: 4
这个循环还能慢慢跑啊,没有sleep这么能控制时间呢?

一旦sleep了,程序就不能接受输入了。所以,必定是双进程的脚本!


_________________
free VPN
YouKuDownLoader
代码:
pip3 install ykdl

install YouKuDownLoader, have fun in downloading.
YouKuDownLoader所支持网站列表


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-11 20:01 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
楼上的试过就知道行不行了,要在 bash 中试,不要太老的版本就行。
read 中的 -t1 就是等一秒。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-11 20:13 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
-t timeout
Cause read to time out and return failure if a complete line of
input is not read within timeout seconds. timeout may be a decimal
number with a fractional portion following the decimal point. This
option is only effective if read is reading input from a terminal,
pipe, or other special file; it has no effect when reading from reg‐
ular files. If timeout is 0, read returns success if input is
available on the specified file descriptor, failure otherwise. The
exit status is greater than 128 if the timeout is exceeded.


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-11 23:34 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
cnkilior 写道:
这个循环还能慢慢跑啊,没有sleep这么能控制时间呢?

一旦sleep了,程序就不能接受输入了。所以,必定是双进程的脚本!


read 是可以 的 不过是 秒级的

如果要ms 的 就要 双进程了

或者自己弄个read
viewtopic.php?f=21&t=220283&start=30
这里有一个


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-11 23:37 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
又学究了。
不问下lz,这干嘛。
多半实现的方法,没找对路数。
瞎折腾


_________________
● 鸣学


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 问题:实现倒计时+按任意键退出
帖子发表于 : 2009-09-11 23:54 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
没什么用途,来学习的 :em04


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:YpJlkj2bj2 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译