Определение временного интервала в сценарии Bash [закрыто]

Вы chdir() выполняли перед перемещением файла? Если вы этого не сделали, файл будет перемещен в папку "upload/1268_org.jpg", но относительно /var/www/html/inc/classes, что приведет к перемещению в /var/www/html. /inc/classes/upload/1268_org.jpg и определенно не является вашим предполагаемым местоположением.

Решение: chdir перед перемещением или используйте абсолютный путь.

0
19.04.2019, 01:05
2 ответа

Я не совсем понимаю, что вы пытаетесь сделать, но я вижу одну проблему: число не может быть одновременно больше 1700 и меньше 0800, поэтому ваш оператор if всегда будет возвращать false. Вам нужно использовать оператор orвместо and.

Вот что я придумал, и это работает:

#!/bin/bash
hr=$(date +%H%M)
if [[ $hr -ge "1700" || $hr -lt "0800" ]]; then
echo "success"
fi
1
28.01.2020, 02:25

Работает с 17:00 до 19:00 :59:00 (кроме 8:00):

case $(date +%H) in
  (17|18|19|20|21|22|23|00|01|02|03|04|05|06|07) echo run;;
  (*) echo do not run;;
esac

... чтобы включить все таймфреймы с 8:00, включите 8 в первый список. Нет необходимости включать минуты в команду date.

2
28.01.2020, 02:25

Теги

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