LINUX.ORG.RU

как в bash проверить что текущее время в определенных пределах?

 , ,


0

1

т.е. от 7:00 до 19:00 по местному времени. Примерно такое хочу.

if clock >= 7:00 && clock < 19:00 
then
 ok
fi

Можно еще проверить что в wm включена ночная подсветка?



Последнее исправление: naKovoNapalBaran (всего исправлений: 5)

Переводи в эпохальное от удобной даты и сравнивай числа.

Entmatix
()

вырезайте целые часы из выхлопа zdump

vaddd ★☆
()

date +%H%M выведет тебе часы с минутами. Можно сравнивать как целые числа.

Radjah ★★★★★
()
if [ `date +%H%M` -ge 700 -a `date +%H%M` -le 1900 ]; then
 echo ok
fi

Но скорее всего тебе нужен крон, а не вот это вот. Какова, собственно, реальная конечная цель?

CrX ★★★
()
Ответ на: комментарий от CrX

нужно это, чтобы скрипты сборки оставались в powersave ночью, проверяю еще другую активность и параметры, чтобы не мешать другим и экономить, пк всегда включён.

naKovoNapalBaran
() автор топика
[dan@dan-laptop ~]$ TS=123
[dan@dan-laptop ~]$ date --date=@$TS
Thu  1 Jan 03:02:03 MSK 1970
[dan@dan-laptop ~]$ date +"%H" --date=@$TS
03
[dan@dan-laptop ~]$ [[ `date +"%H" --date=@$TS` -lt 2 ]]
[dan@dan-laptop ~]$ echo $?
1
[dan@dan-laptop ~]$ [[ `date +"%H" --date=@$TS` -lt 5 ]]
[dan@dan-laptop ~]$ echo $?
0
melkor217 ★★★★★
()

Как такой вариант? Завести переменную окружения $NIGHT_TIME кроном ее в 19.00 устанавливать в 7.00 сбрасывать. Ну и во всех скриптах проверяй ее.

pavel_l
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.