Bash读取txt并将条件应用于变量



可能会问,读取文件、将变量存储到数组中并能够进行比较的正确方法是什么?PHP用户界面编写了一个包含3个变量的txt:星期几、小时和分钟,我需要将它们读取到bash中,并与当前时间进行比较,以确定是否要做某事。目前,我不确定如何在bash数组中读取和存储变量,并且我遇到了很多关于如何计算条件以确定当前时间是否比txt时间重要的问题。在我的例子中,bash脚本一直在运行,有时它会完成一些事情,并且需要检查当前时间是否为主,然后是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中写入此条件,可能会寻求帮助?感谢

如果保存的日期/时间与当前时间匹配,则需求似乎会执行作业。

# 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