У меня есть:
sleep 210m && for i in $(seq 1 5); do echo -e '\a'; sleep 0.5; done
работает как простой, без излишеств таймер, чтобы напомнить мне, когда что-то должно быть сделано. Это sleep 210mPID 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 секунду).