Unix: сон до требуемого времени

Существует ли (полу-) стандартная команда Unix, которая спала бы до времени, указанного на его командной строке? Другими словами, я ищу что-то подобное sleep это заняло бы время пробуждения, а не продолжительность.

Например: sleeptill 05:00:00

Я могу кодировать что-то, но не изобрел бы велосипед, если уже существует что-то там.

Вопрос о премии: было бы замечательно, если это могло бы взять часовой пояс (как в sleeptill 05:00:00 America/New_York).

отредактируйте из-за природы того, что я делаю, я ищу "сон до T", а не "команда выполнения в T" решение.

редактирование Для предотвращения сомнения, если я выполняю команду в 18:00 и говорю ей просыпаться в 17:00, я ожидаю, что это будет спать в течение 23 часов (или, в некоторых угловых случаях, имеющих отношение к летнему времени, в течение 22 или 24 часов.)

11
задан 15.12.2010, 13:39

2 ответа

Если Вы находитесь на Unix, который имеет достойную команду даты и использует удар, Вы могли использовать %s формат для вычисления времени.

sleep $(( $(date -j 1700 +%s) - $(date +%s) ))

(1700 являющийся 17:00 и-j сообщение даты не на самом деле назначить дату)

18
ответ дан 07.12.2019, 12:10

Проверьте linux/unix at команда. Используя пример 5:00:

at 05:00 some_command

Это также поддерживает часовые пояса:

Название часового пояса GMT, UCT или (нечувствительного к регистру) ЯЗЫКА ЗУЛУ может следовать, чтобы указать, что время находится во Всемирное координированное время. Другие часовые пояса могут быть указаны с помощью переменной среды TZ.

9
ответ дан 07.12.2019, 12:10

Теги

Похожие вопросы