Shell-Script
將日期變數與 wget –post-data 一起使用
對於一個項目,我想在cron中使用****wget來下載數據文件。在 wget 語句中,必須按以下格式定義開始日期和結束日期:
wget --post-data="stns=235&vars=TEMP&start=YYYYMMDDHH&end=YYYYMMDDHH"
由於我希望它由 cron 作業完成,因此我希望自動設置開始日期和結束日期。更具體地說,我希望將開始日期設置為“1 小時前”,將結束日期設置為“現在”。
在Using date -1day with wget的文章中有一個類似的問題。這裡建議的解決方案是將變數放在單引號之間,但這不起作用。例如:
"[...]start='`date -d yesterday +%Y%m%d%H'&end=`date +%Y%m%d%H`"
嘗試在終端中執行 wget 語句時,我只是收到錯誤“錯誤 400:錯誤請求”。
謝謝你。
在 cron 作業中,
%
是特殊的,必須轉義。此外,最好避免使用反引號語法。我建議如下:wget --post-data="start=$(date ... +\%Y\%m\%d\%H)&end=$(date ... +\%Y\%m\%d\%H)&..."