我正在运行一个包含curl whron的cron,其中包含startDate和endDate的值,它们必须采用yyyy-mm-dd格式. endDate是今天,startDate是7天前.总体格式是:
curl -o ~/location/filename.xml "http://url.asmx/do_this?&startDate=x&endDate=y"
使用固定的开始日期,这可以通过macosx上的终端运行:
&startDate=2014-10-01&endDate=`date +\%Y-\%m-\%d`"
但是,记住startDate应该在系统日期之前7天,以下两种方法都会导致错误’指定的日期格式不正确.日期格式应为:YYYY-MM-DD,例如2011-12-24′
startDate=`date -d '7 days ago' +\%Y-\%m-\%d`&endDate=`date +\%Y-\%m-\%d`
startDate=`date --date="7 days ago" +\%Y-\%m-\%d`&endDate=`date +\%Y-\%m-\%d`
这是使用“’和`?的问题吗?
我在这做错了什么? BTW我试图保持在一行命令行而不是在文件中使用脚本.
编辑:从谷歌搜索和复制和粘贴许多建议,我发现在Mac论坛上的以下工作:
$(date -v-7d +%Y-%m-%d)
但是我以前没见过-v.我想知道它是什么,是Mac特定的,这会在其他服务器上出现问题吗?
最佳答案
Is this an issue with using ” ‘ and `?
大概.用$()替换“你的命令有效:
curl -o ~/location/filename.xml "http://url.asmx/do_this?&startDate=$(date -d '7 days ago' +\%Y-\%m-\%d)&endDate=$(date +\%Y-\%m-\%d)"