【发布时间】:2015-03-29 08:36:16
【问题描述】:
我有这样的 bash 脚本:
array=( '2015-01-01', '2015-01-02' )
for i in "${array[@]}"
do
python /home/user/executeJobs.py {i} &> /home/user/${i}.log
done
现在我想遍历一系列日期,例如2015 年 1 月 1 日至 2015 年 1 月 31 日。
如何在 Bash 中实现?
更新:
锦上添花:在上一次运行完成之前不应启动任何作业。在这种情况下,当 executeJobs.py 完成后,bash 提示符 $ 将返回。
例如我可以在循环中加入wait%1 吗?
【问题讨论】:
-
您在使用 GNU date 的平台上吗?
-
顺便说一句,由于您手边有一个 Python 解释器,因此使用
datetimePython 模块以可靠和可移植的方式更容易做到这一点。 -
2015-01-01 到 2015-01-31 不跨越超过一个月的日期,所以这是一个非常简单的案例。
-
...所以,如果您确实看到
wait的需要(例如,当您不这样做时,由于并发进程而发生错误),那么你有一些更有趣/更复杂的事情,需要一个更复杂的解决方案(比如要求子进程继承一个锁文件),这已经足够复杂并且与日期算术足够无关,应该是一个单独的问题。