如何在bash中实现计时器按键?

时间:2009-12-22 01:46:54

标签: bash timer keypress

这将是会发生什么,显示一条消息,指定的时间等待按键,如果没有按键则会恢复。

实施例

“按ESC退出,否则你会死... 3..2..1”

“按'x'拖延并查看电子邮件,阅读一些博客,脸谱,推特......否则你将恢复工作12小时.. 3..2..1”

这应该是一个非常方便的功能。如何在bash中创建此功能?

2 个答案:

答案 0 :(得分:6)

在bash手册页上查看“read”命令并注意“-t timeout”选项。这样的事情应该让你开始

for i in 3 2 1 ; do 
    read -p $i... -n 1 -t 1 a && break
done

答案 1 :(得分:3)

使用read bash builtin命令的-t和-n选项,也不要忘记-r和-s。 (详见手册)

#!/bin/bash

timeout=3

echo -n "Press ESC to exit, otherwise you will die..."
while [ $timeout -gt 0 ]; do
    echo -n " $timeout"
    if read -n1 -t1 -r -s x; then
        echo
        exit 0
    fi
    let timeout--
done
echo