簡體   English   中英

在Mac OS shell腳本中使用日期

[英]Using dates in a Mac OS shell script

我正在為文件編寫一個簡單的批量下載程序,其格式為Ymd.pdf。 我想將日期(從,到)作為參數傳遞,例如:

./download.sh 2012-01-01 2012-01-31

那應該下載2012年1月的所有文件。

這是我到目前為止所得到的:

#!/bin/bash

for i in {0..9}
do
    curl -u user:pw http://server/path/somescript.pl?date=`date -v-"$i"d +%Y-%m-%d` -o `date -v-"$i"d +%Y-%m-%d`.pdf
done

這將下載十個最新文件。

編輯:我如何迭代一系列日期? 就像是:

for d in {2012-01-01..2012-03-31}

我希望有一個內置功能,否則我需要照顧每個月的天數(不要忘記閏年)。

以下顯示了基本的想法,你必須自己把curl東西:

START=`date -j -f %Y-%m-%d:%H.%M $1:0.0 +%s`
END=`date -j -f %Y-%m-%d:%H.%M $2:0.0 +%s`
for (( i=$START; i<=$END; i+=86400 )); do # seconds/day
   echo `date -j -f %s "$i" +%Y-%m-%d`
done;  

如果你打電話:

> ./range 2012-1-30 2012-2-4
2012-01-30
2012-01-31
2012-02-01
2012-02-02
2012-02-03
2012-02-04

您可以使用[01-31]下載一系列文件:

$ curl -u user:pw 'http://server/path/somescript.pl?date=2012-01-[01-31]' -o '2012-01-#1.pdf'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM