我编写了一个 .sh 脚本,首先下载页面的源代码,然后执行 Rscript 仅当下载的源代码与后者不同时。该页面每天更新一次,URL 以实际日期结束。这一切都在服务器上,cron 作业将每 15 分钟运行一次 .sh。所以我这样做:
x = tf.cast(x, "float32")
第一个问题,即使 download.html 已下载且未更改,它仍继续运行 R 脚本。
另外,我在 R 脚本运行后遇到错误 #!/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
答案 0 :(得分:0)
你应该在if和[之间留一个空格。
#!/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
另外,如果您没有看到任何错误,我建议您使用任何在线 lint 来指导您解决问题
答案 1 :(得分:0)
一些问题:
您需要在 if
和 [
之间放置一个空格 - 或者您可以直接输入 if command; then
。
您计算了错误文件的 MD5 总和。
您删除了错误的文件。
由于您可能对查看 MD5 总和中的实际差异不感兴趣,我建议您使用 cmp -s
而不是 diff
。
另请注意,我也引用了 $(date ...)
命令。在这种特殊情况下没有必要,但它使 linters 高兴。
#!/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 download.html > last_md5
if ! cmp -s previous_md5 last_md5; then
Rscript myscript.R
mv last_md5 previous_md5
else
rm last_md5
fi
rm download.html