我正在尝试在 bash 中下载带有 curl 的 html 文件。喜欢这个网站: http ://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S&subareasel=PHYSICS&idxcrs=0001B+++
当我手动下载它时,它工作正常。但是,当我尝试通过 crontab 运行我的脚本时,输出的 html 文件非常小,只显示“对象已移至此处”。链接断开。这是否与 crontab 命令运行的稀疏环境有关?我发现了这个问题:
但我使用的是 bash,而不是 php。设置哪些等效的命令行选项或变量来解决 bash 中的这个问题?
(我想用 curl 做这个,而不是 wget)
编辑:嗯,有时手动下载文件(通过交互式外壳)可以工作,但有时不能(我仍然收到“对象已移至此处”消息)。因此,这可能不是 cron 环境的具体问题,而是 curl 本身的问题。
cron 条目:
* * * * * ~/.class/test.sh >> ~/.class/test_out 2>&1
测试.sh:
#! /bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/sbin
cd ~/.class
course="physics 1b"
url="http://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S<URL>subareasel=PHYSICS<URL>idxcrs=0001B+++"
curl "$url" -sLo "$course".html --max-redirs 5
编辑:问题解决了。问题是网址中的杂散标签。这是因为我正在sed s,"<URL>",\""$url"\", template.txt > test.sh
生成脚本并且 sed 用&
正则表达式替换了所有实例<URL>
。修复 url 后, curl 工作正常。