beep
が必要な理由がわかりません .ストップウォッチだけが必要な場合は、これを行うことができます:
while true; do echo -ne "`date`\r"; done
これにより、秒の経過がリアルタイムで表示され、Ctrl で停止できます。 +C .より高い精度が必要な場合は、これを使用してナノ秒を取得できます:
while true; do echo -ne "`date +%H:%M:%S:%N`\r"; done
最後に、すべてが 0 から始まり成長し始める「ストップウォッチ形式」が本当に必要な場合は、次のようにすることができます。
date1=`date +%s`; while true; do
echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r";
done
カウントダウン タイマー (元の質問で求められたものではありません) の場合、次のようにできます (それに応じて秒数を変更します):
seconds=20; date1=$((`date +%s` + $seconds));
while [ "$date1" -ge `date +%s` ]; do
echo -ne "$(date -u --date @$(($date1 - `date +%s` )) +%H:%M:%S)\r";
done
bash (またはお好みのシェル) 関数を使用して、これらを単純なコマンドに組み合わせることができます。 bash で、これらの行を ~/.bashrc
に追加します (sleep 0.1
CPU をスパムに使用しないように、各実行の間にシステムを 1/10 秒待機させます):
function countdown(){
date1=$((`date +%s` + $1));
while [ "$date1" -ge `date +%s` ]; do
echo -ne "$(date -u --date @$(($date1 - `date +%s`)) +%H:%M:%S)\r";
sleep 0.1
done
}
function stopwatch(){
date1=`date +%s`;
while true; do
echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r";
sleep 0.1
done
}
次のコマンドを実行して、1 分間のカウントダウン タイマーを開始できます。
countdown 60
次の方法で 2 時間カウントダウンできます:
countdown $((2*60*60))
または以下を使用して丸一日:
countdown $((24*60*60))
次を実行してストップウォッチを開始します。
stopwatch
時間、分、秒だけでなく、日も処理できるようにする必要がある場合は、次のようにすることができます。
countdown(){
date1=$((`date +%s` + $1));
while [ "$date1" -ge `date +%s` ]; do
## Is this more than 24h away?
days=$(($(($(( $date1 - $(date +%s))) * 1 ))/86400))
echo -ne "$days day(s) and $(date -u --date @$(($date1 - `date +%s`)) +%H:%M:%S)\r";
sleep 0.1
done
}
stopwatch(){
date1=`date +%s`;
while true; do
days=$(( $(($(date +%s) - date1)) / 86400 ))
echo -ne "$days day(s) and $(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r";
sleep 0.1
done
}
stopwatch
24時間待ちたくなかったので、機能は何日もテストされていません。動作するはずですが、動作しない場合はお知らせください。
私のお気に入りの方法は:
開始:
time cat
停止:
ctrl+c
@wjandrea が以下にコメントしたように、別のバージョンが実行されます:
time read
Enter
を押します やめる
私は同じものを探していましたが、Python でより精巧なものを書くことになりました:
これにより、単純な 10 秒間のカウントダウンが表示されます:
sudo pip install termdown
termdown 10
ソース:https://github.com/trehn/termdown