Bash читать текст и применять условия к переменным - PullRequest
0 голосов
/ 02 августа 2020

Может спросить, как правильно читать файл, сохранять переменные в массиве и иметь возможность сравнивать их? PHP пользовательский интерфейс записывает txt с 3 переменными: день недели, час и минута, мне нужно прочитать их в bash и сравнить с текущим временем, чтобы определить, нужно ли что-то делать или нет. В настоящее время я не уверен, как я читаю и сохраняю переменные внутри массива bash, и у меня возникает много вопросов о том, как вычислить условие, чтобы определить, является ли текущее время большим, чем время txt. В моем случае сценарий bash запущен, когда когда-либо, иногда он должен sh что-то сделать, и ему нужно проверить, является ли текущее время основным, а затем время txt, чтобы выбрать, что делать дальше.

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

2
20
45

bash скрипт

#!/bin/bash
#CHECKTIME


#GET TIME

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

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

Однако я не уверен, как я читаю и сохраняю переменные в массиве и как записать это условие в BASH, может попросить помощи? Спасибо

1 Ответ

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

Требуется выполнить задание, если сохраненная дата / время совпадает с текущим временем.

   # Ready current Month-day, hour, minute
read CDD CHH CMM <<< (date '+%e %H %M')
   # Read saved time from file
{ read XDD ; read XHH ; read XMM ;} < myFile.txt
   # Check for matching day, and execute if current time >= saved time.
if (( CDD==XDD && CHH*60+CMM >= XHH*60+XMM )) ; then
   echo "Do Event"
else
   echo "Skip"
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...