2013-03-25 86 views
0

我有一個批處理腳本,它運行如下所示./test.sh -d 2013-03-25;這裏的日期是用戶輸入;但我需要的是將日期列表傳遞給此批處理腳本;我從2013年1月1日至2013年3月25日有25個連續日期;我怎樣才能將每個日期動態地傳遞給這個批處理文件。將日期列表傳遞給linux中的批處理文件

任何幫助將不勝感激

+0

如果放一個範圍就像我說我想在2013-03-01&2013-03-25之間跑,我該怎麼做? – user1570210 2013-03-25 17:31:28

回答

1

一種方法是將日期存儲在數組中。這可以從shell腳本中很好地工作。

dates=(2013-03-01 2013-03-02 etc...) 

for date in "${dates[@]}"; do 
    ./test.sh -d "$date" 
done 

另一種方法是將日期存儲在文本文件中,每行一個。如果你這樣做,那麼你可以在通過他們像這樣:

xargs -a dates.txt -d '\n' ./test.sh 

或者,看到日期是連續的,在同一個月,您可以以編程方式通過他們循環。

for day in 00..25; do 
    ./test.sh -d "2013-03-$day" 
done 

for ((day = 1; day <= 25; ++day)); do 
    ./test.sh -d "2013-03-$(printf '%02d' "$day")" 
done 
+0

謝謝約翰,真的很有幫助 – user1570210 2013-03-25 17:02:16

+0

如果把我說的範圍放在2013-03-01&2013-03-25之間,我該怎麼做? – user1570210 2013-03-25 17:29:09

+0

@ user1570210請參閱我編輯中的最後一個循環。這應該很容易適應。 – 2013-03-25 17:55:57

相關問題