Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Bash读取txt并将条件应用于变量_Php_Bash - Fatal编程技术网

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

Php Bash读取txt并将条件应用于变量,php,bash,Php,Bash,可能会问,读取文件、将变量存储到数组中并能够比较它们的正确方法是什么? PHP用户界面编写了一个包含3个变量的txt:周日、小时和分钟,我需要将它们读入bash并与当前时间进行比较,以确定是否要做某事。 目前,我不确定如何读取和存储bash数组中的变量,并且我遇到了很多问题,关于如何计算条件以确定当前时间是否比txt时间重要。 在我的例子中,bash脚本正在运行,但有时它会完成一些操作,并且需要检查当前时间是否为主要时间,然后是txt选择下一步操作的时间 输入txt文件,计划日期示例 2 20

可能会问,读取文件、将变量存储到数组中并能够比较它们的正确方法是什么? 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
#/bin/bash
#检查时间
#有时间
IFS=-read-r日时分<“$line[2]”
然后
回显“做事件”
其他的
回应“不做事件”
#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
#准备好当前月份日期、小时、分钟
读取CDD CHH CMM=XHH*60+XMM);然后
回显“做事件”
其他的
回音“跳过”
fi

为什么不直接在PHP中执行此操作?作者:bash i drive mp4box,ffmpeg。。我需要检查live straeming何时结束,是否有新的live,是否是流式传输的时间。问题参考“周日”,但示例代码使用的是“月日”(%e in date)。您想使用哪一个?从问题中,一旦满足初始时间,“do事件”可以被触发多次(在选定的日期)。这就是目的吗?@massimovantiggio:
是bash中的重定向操作符。另外,由于
]
前面缺少空格,您将收到一条错误消息
bash:[:missing']''