【发布时间】:2015-02-18 08:07:11
【问题描述】:
我一直试图让一个 for 循环同时运行一堆命令,并试图通过子 shell 来实现。我设法将下面的脚本拼凑在一起进行测试,它似乎工作正常。
#!/bin/bash
for i in {1..255}; do
(
#commands
)&
done
wait
唯一的问题是我的实际循环将是 for i in files* 然后它就崩溃了,我认为是因为它启动了太多子shell 来处理。所以我加了
#!/bin/bash
for i in files*; do
(
#commands
)&
if (( $i % 10 == 0 )); then wait; fi
done
wait
现在失败了。有谁知道解决这个问题的方法?是使用不同的命令来限制子shell 的数量还是为$i 提供一个数字?
干杯
【问题讨论】:
-
你对文件做了什么?
-
这 - “然后它就崩溃了” - 很难相信。我很确定它会产生一些错误消息。