Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: date - как задать время суток?  (Прочитано 300 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlexanderL

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
date - как задать время суток?
« : 01 Ноябрь 2017, 06:29:50 »
Всем доброго утра.

Есть задачка: с помощью команды date сгенерировать фиксированное время дня, пусть, для пример, будет 5 утра.
Но ближайшие следующие 5 утра.
То есть, до 5-ти часов утра - это 5 утра сегодня, а после - это уже 5 утра завтра.
А в 0 часов - это опять 5 часов сегодня.

В команде date есть похожие опции, но:
> date --date "05:00"
Ср ноя  1 05:00:00 MSK 2017
- выдает 5 утра сегодня, даже если 5 утра уже прошло
> date --date "tomorrow 05:00"
Чт ноя  2 05:00:00 MSK 2017
- выдает 5 утра завтра, но в 0 часов оно будет опять завтра.

Должно быть что-то такое, но не работает:
> date --date "this 05:00"
date: invalid date ‘this 05:00’
> date --date "next 05:00"
date: invalid date ‘next 05:00’
> date --date "first 05:00"
date: invalid date ‘first 05:00’

Похоже, я не вижу чего-то очень простого. Подскажете решение?
« Последнее редактирование: 01 Ноябрь 2017, 10:05:11 от Azure »

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: date - как задать время суток?
« Ответ #1 : 01 Ноябрь 2017, 09:48:18 »
next | first | … это для даты (не времени)
В любом случае придется 2 раза вызывать date:
1 при определении даты (сегодня или завтра)
2 при выводе времени полностью (хотя если оно фиксированное — можно просто строку через echo)
date -d "$(date +%F -d "+19 hours') 05:00:00"P.S. Это что, задание со звездочкой из учебника и проверка с помощью if была бы сильно простым решением?
« Последнее редактирование: 01 Ноябрь 2017, 10:03:48 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн AlexanderL

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: date - как задать время суток?
« Ответ #2 : 01 Ноябрь 2017, 10:15:34 »
Спасибо.

Не, это не из учебника - это я накопал команду rtcwake, решил побороться за экономию электроэнергии, и упёрся в то, чо не могу задать этой команде время включения компьютера.

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: date - как задать время суток?
« Ответ #3 : 01 Ноябрь 2017, 10:47:57 »
Не уверен что rtcwake сама не вычисляет…date -d "+$(($(date +%H) >= 5)) days 5:00"
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн AlexanderL

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: date - как задать время суток?
« Ответ #4 : 01 Ноябрь 2017, 13:08:27 »
Шайтана-ма. Спасибо.

 

Страница сгенерирована за 0.154 секунд. Запросов: 22.