Shell-Script

將日期變數與 wget –post-data 一起使用

  • March 22, 2017

對於一個項目,我想在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)&..."

引用自:https://unix.stackexchange.com/questions/353061