私が持っています:
sleep 210m && for i in $(seq 1 5); do echo -e '\a'; sleep 0.5; done
シンプルで飾り気のないタイマーとして実行され、何かをする必要があるときに通知します。それsleep 210m
はPID 25347です。
睡眠の残り時間を把握しようとしています。私が思いついた中で最高の、元の睡眠量(210分)を入れてみます:
$ echo "210 60 * $(ps -o etimes= 25347) - 60 ~ r n [:] P p" | dc
78:11
(説明:最初のビットは、元のスリープの秒数を計算します。$(ps…)
ビットは、スリープが開始してからの時間を秒単位で取得し、残りはそれらを減算して、分と秒で表示します。)
これは、一般的に便利だと思います。これを行うより良い方法はありますか?または、少なくとも睡眠時間を解析する賢い方法はps -o args
?
exec
)。しかし、これは一般的なソリューションにとっては良い点です。
mksh
およびksh93
少なくとも)がsleep
組み込まれている(そのため、では表示されない)ことに注意してくださいps
。どのsleep
実装を扱っているかを事前に知っておく必要があります。
sh -c 'sleep 1; sleep 2'
、多くのsh
実装では、実行sh
して後で実行するのと同じプロセスですsleep 2
(1秒後)。