【发布时间】:2021-08-02 05:58:45
【问题描述】:
我写了一个.sh脚本,首先下载一个页面的源代码,然后执行一个Rscript只有当下载的源代码与后者不同时。该页面每天更新一次,URL 以实际日期结尾。这一切都在服务器上,一个 cron 作业将每 15 分钟运行一次 .sh。所以我这样做:
#!/bin/bash
lwp-download "https://geodes.santepubliquefrance.fr/GC_indic.php?lang=fr&prodhash=de1751e6&indic=type_hospit&dataset=covid_hosp_type&view=map2&filters=sexe=0,jour="$(date '+%Y-%M-%d') download.html
md5 page.html > last_md5
diff previous_md5 last_md5
if[ "$?" = "!" ] ; then
Rscript myscript.R
fi
mv last_md5 previous_md5
rm page.html
第一个问题,即使 download.html 已下载且未更改,它仍会继续运行 R 脚本。
另外,在 R 脚本运行后我遇到了错误"Syntax error: "fi" unexpected"
【问题讨论】:
-
我建议将
!替换为1。 -
并在
if[中添加一个空格,使其变为if [- 这解释了您遇到的语法错误。 -
错字?
download.html(已下载)与page.html(用于检测更改)? -
您的程序是否在计算
MD5的总和,称为md5?在我的机器上它被称为md5sum,但我想这可能会有所不同。 -
好的,再次感谢@TedLyngmo