Php shell脚本-解释代码

Php shell脚本-解释代码,php,shell,Php,Shell,我只是一个shell脚本的初学者。我正在阅读我同事的代码,我不知道下面的代码是什么意思。有人能帮我解释一下下面代码的含义吗,特别是结果行 #!/bin/bash DATETIME=$(date); LOGFILE="/var/www/ema/services/generate.log"; ENDRESULT="DONE"; RESULT=$(curl -s 127.0.0.1/services/generatereport.php); if [[ "$RESULT" =~ "$ENDRESU

我只是一个shell脚本的初学者。我正在阅读我同事的代码,我不知道下面的代码是什么意思。有人能帮我解释一下下面代码的含义吗,特别是
结果

#!/bin/bash
DATETIME=$(date);
LOGFILE="/var/www/ema/services/generate.log";
ENDRESULT="DONE";

RESULT=$(curl -s 127.0.0.1/services/generatereport.php);

if [[ "$RESULT" =~ "$ENDRESULT" ]]; then
    RESULT="Generation Ended";
    echo "["$DATETIME"]"$RESULT >> $LOGFILE;
else
    echo "["$DATETIME"]"$RESULT >> $LOGFILE;
    /var/www/ema/services/generate.sh;  
fi

此脚本的文件名是
generate.sh
我已经为您注释了代码:)

这一行
RESULT=$(curl-s127.0.0.1/services/generatereport.php)用于加载资源,在本例中为文件generatereport.phpUPDATE:它基本上是在执行curl命令,从服务器请求文件。选项-s为静默模式,以避免出现任何错误消息或进度条。从curl文档中:

-s,--silent

静默或安静模式。不显示进度表或错误消息。使卷曲静音

因为使用的IP地址是127.0.0.1(localhost),所以他只是从localhost中的文件夹服务执行文件。文件的输出存储在变量RESULT中

下一个if语句
[[“$RESULT”=~“$ENDRESULT”]
,将结果的结尾与变量ENDRESULT的值进行比较,该变量的值为“完成”,在这种情况下,报告生成已完成,它将语句
“生成结束”
存储在日志文件中,作为“[日期]生成结束”

日志文件位于
/var/www/ema/services/generate.log


在第二种情况下,它也将
generatereport.php
的输出存储在日志文件中,尽管这次它还调用位于
/var/www/ema/services/generate.sh

的shell脚本文件,如果收到“DONE”响应,它会用“Generation Ended”覆盖$RESULT并将其写入文件。谢谢您的解释。我还可以知道结果行上的“curl”和“-s”是什么意思吗?
#!/bin/bash
DATETIME=$(date); // Get current date
LOGFILE="/var/www/ema/services/generate.log"; // Where to save data
ENDRESULT="DONE"; // What to expect at the end of data

RESULT=$(curl -s 127.0.0.1/services/generatereport.php); // Request data from PHP running on localhost

if [[ "$RESULT" =~ "$ENDRESULT" ]]; then // If $RESULT ends with "DONE" then log to file that everything is okay;
    RESULT="Generation Ended";
    echo "["$DATETIME"]"$RESULT >> $LOGFILE;
else // Otherwise write down the error and run some other script.
    echo "["$DATETIME"]"$RESULT >> $LOGFILE; 
    /var/www/ema/services/generate.sh;  
fi