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


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: [Решено] Проверка времени в скрипте  (Прочитано 371 раз)

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

Оффлайн ecc83

  • Автор темы
  • Активист
  • *
  • Сообщений: 752
  • Ubuntu MATE 16.04.3 LTS CentOS 7
    • Просмотр профиля
[Решено] Проверка времени в скрипте
« : 15 Сентябрь 2017, 20:06:54 »
Нужна помощь.

Необходимо при запуске скрипта проверять текущее время, учитывая минуты.
Если текущее время >= 00:30 и <= 06:15, тогда запускается некая команда.
Если текущее время за пределами этого диапазона, то команда не запускается.

Пока у меня получилось только с "целыми" часами. С минутами не получается...
Но эта конструкция не правильно обрабатывает 00 часов  ???

#!/bin/bash

H=$(date +%H)

if [ "$H" -ge "23" -o "$H" -le "06" ]; then
    echo "Старт команды..."
fi

Спасибо.
« Последнее редактирование: 15 Сентябрь 2017, 21:44:35 от ecc83 »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5332
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Проверка времени в скрипте
« Ответ #1 : 15 Сентябрь 2017, 20:25:28 »
получилось только с "целыми" часами
переводи в минуты/секунды
не правильно обрабатывает
убери кавычки с цифр
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн ecc83

  • Автор темы
  • Активист
  • *
  • Сообщений: 752
  • Ubuntu MATE 16.04.3 LTS CentOS 7
    • Просмотр профиля
Re: Проверка времени в скрипте
« Ответ #2 : 15 Сентябрь 2017, 20:36:40 »
переводи в минуты/секунды

Не понял, как это и для чего?


убери кавычки с цифр

Убрал, делаю так:

H=$(date +%H)

if [ "$H" -ge 00 -o "$H" -le 06 ]; then
    echo "Старт команды..."
fi

Команда стартует, хотя сейчас ещё не наступило 00 часов  :-\

Оффлайн renzrv

  • Старожил
  • *
  • Сообщений: 1837
    • Просмотр профиля
Re: Проверка времени в скрипте
« Ответ #3 : 15 Сентябрь 2017, 20:50:55 »
Код: Bash
  1. H=$(date +%-H)
  2. M=$(date +%-M)
  3. DAY_MINUTES=$((H*60+M))
  4.  
  5. if [ $DAY_MINUTES -ge 30 -a $DAY_MINUTES -le 375 ]
  6. then
  7.         echo "Старт команды..."
  8. fi
Скрипты на bash,sh,perl,awk + разная помощь (в ЛС)

Оффлайн ecc83

  • Автор темы
  • Активист
  • *
  • Сообщений: 752
  • Ubuntu MATE 16.04.3 LTS CentOS 7
    • Просмотр профиля
Re: Проверка времени в скрипте
« Ответ #4 : 15 Сентябрь 2017, 21:02:33 »
renzrv, понял, как будто работает. Спасибо :)

Оффлайн renzrv

  • Старожил
  • *
  • Сообщений: 1837
    • Просмотр профиля
Re: Проверка времени в скрипте
« Ответ #5 : 15 Сентябрь 2017, 21:37:35 »
Почему "как будто"? Если хотите проверить, то укажите сами значения переменных часы, минуты.
Например:
H=0
M=29
Скрипты на bash,sh,perl,awk + разная помощь (в ЛС)

Оффлайн ecc83

  • Автор темы
  • Активист
  • *
  • Сообщений: 752
  • Ubuntu MATE 16.04.3 LTS CentOS 7
    • Просмотр профиля
Re: Проверка времени в скрипте
« Ответ #6 : 15 Сентябрь 2017, 21:42:55 »
Почему "как будто"?

Да нет, я не ставлю под сомнение. Просто я хотел проверить, когда наступит временной диапазон.


Если хотите проверить, то укажите сами значения переменных часы, минуты. Например: H=0 M=29

Благодарю, дальше я конечно сам справлюсь.


Оффлайн renzrv

  • Старожил
  • *
  • Сообщений: 1837
    • Просмотр профиля
Re: Проверка времени в скрипте
« Ответ #7 : 15 Сентябрь 2017, 21:51:20 »
можно еще так:
Код: Bash
  1. DAY_MINS=$(($(date '+%-H*60+%-M')))
  2.      
  3. if [ $DAY_MINS -ge 30 -a $DAY_MINS -le 375 ]
  4. then
  5.     echo "Старт команды..."
  6. fi
Скрипты на bash,sh,perl,awk + разная помощь (в ЛС)

Оффлайн ecc83

  • Автор темы
  • Активист
  • *
  • Сообщений: 752
  • Ubuntu MATE 16.04.3 LTS CentOS 7
    • Просмотр профиля
Re: [Решено] Проверка времени в скрипте
« Ответ #8 : 15 Сентябрь 2017, 22:02:00 »
можно еще так:
Код: Bash
  1. DAY_MINS=$(($(date '+%-H*60+%-M'))) if [ $DAY_MINS -ge 30 -a $DAY_MINS -le 375 ] then echo "Старт команды..." fi

Ок, и так тоже попробую.

 

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