Bash условие для запланированного события - PullRequest
0 голосов
/ 02 августа 2020

Попытка заставить этот скрипт работать, запланировать событие внутри цикла while, которое проверяет, подходящий ли момент или не нужно что-то делать.

например: если день недели равен, а количество часов больше, сделайте это , иначе не делайте этого, но если день и час недели равны, проверьте также на равные или большие минуты ..

Входной текстовый файл, пример даты расписания:

2
23
45

Скрипт:

#!/bin/bash
#CHECKTIME


#GET TIME
#Corrected by chepner

IFS=- read -r DAY HOUR MINUTE < <(date +%e-%H-%M)
echo $DAY
echo $HOUR
echo $MINUTE


#READ EVENT TIME
while IFS= read -r line; do
    echo "$line"
done < myFile.txt
echo $line[0]
echo $line[1]
echo $line[2]


if [ "$DAY" =  "$line[0]" ] && [ "$HOUR" -ge  "$line[1]"]  && [ "$MINUTE" > "$line[2]"]
then
    echo "do event "

else
        echo "don't do event"
#echo $name
fi

1 Ответ

1 голос
/ 03 августа 2020

Если каждый ввод находится в одной строке, вам необходимо сохранить каждую строку отдельно. read -r line не добавляется к массиву с именем line каждый раз при его вызове.

{
   IFS= read -r DAY
   IFS= read -r HOUR
   IFS= read -r MINUTE
} < myFile.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...