我需要在倒数计时器循环中收听任何按键.如果按下任何键,倒计时器应该突破它的循环.这主要是有效的,除了输入键只是让倒数计时器更快.
#!/bin/bash for (( i=30; i>0; i--)); do printf "\rStarting script in $i seconds. Hit any key to continue." read -s -n 1 -t 1 key if [[ $key ]] then break fi done echo "Resume script"
我似乎无法找到任何在线任何位置检测输入密钥的示例.
我认为基于读取的返回代码,可以解决这个问题.从阅读的手册页,
The return code is zero,unless end-of-file is encountered,read times out,or an invalid file descriptor is supplied as the argument to -u.
超时的返回码似乎是142 [在Fedora 16中验证]
所以,脚本可以修改为,
#!/bin/bash for (( i=30; i>0; i--)); do printf "\rStarting script in $i seconds. Hit any key to continue." read -s -n 1 -t 1 key if [ $? -eq 0 ] then break fi done echo "Resume script"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。