#bash #shell #unix
#bash #оболочка #unix
Вопрос:
Мой сценарий:
currenttime=$(date %H:%M)
if [[ "$currenttime" > "00:00" ]] amp;amp; [[ "$currenttime" < "01:00" ]]; then
./mailscript1.sh
else
./mailscript2.sh
fi
здесь я хотел, чтобы он включал 00:00 и 01:00 и должен вызывать mailscript1 для true, >= и <= не работает
Ответ №1:
Используйте %s (формат эпохи — секунды с 1970-01-01 00:00:00 UTC) для сравнения времени. Это будет отражать время в виде полных чисел, например, 1610621912 и так далее:
currenttime=$(date $s)
if [[ "$currenttime" -ge "$(date -d "00:00" %s)" amp;amp; "$currenttime" -le "$(date -d "01:00" %s)" ]]
then
./mailscript1.sh
else
./mailscript2.sh
fi
Поскольку расширение дат будет строковым, используйте -le для меньше или равно и -ge для больше или равно.
Ответ №2:
на данный момент и простое решение для выполнения вышеуказанного требования. текущий date %H
date -d ' 1 hour' %H
час = Следующий час = текущий момент = date %M
если [[ $currenthour -eq «00» ]] amp;amp; [[ $ Следующий день == «01» ]] amp;amp; [[ $ currentmin -ge 0 amp;amp; $currentmin -le 59 ]];затем./mailscript2.sh остальное ./mailscript1.sh фи