2013-03-25 85 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

相关问题