Я маю:
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 секунда пізніше).