2009-12-22 44 views
1

下面是將會發生的情況,消息在指定時間內等待按鍵顯示,如果沒有按鍵,則會恢復。如何在bash中實現定時器按鍵?

「按ESC鍵退出,否則你會死.. 3..2..1」

「按 'X' 拖延和檢查電子郵件,閱讀一些博客,Facebook, Twitter ..否則,你將恢復工作12小時.. 3..2..1「

這應該是一個非常方便的功能。我如何在bash中創建這個功能?

回答

6

查看bash手冊頁中的「讀取」命令並注意「-t timeout」選項。這樣的事情應該讓你開始

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

使用-t和讀取bash的內置命令的-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