【发布时间】:2018-07-26 17:01:50
【问题描述】:
我有一个 for 循环,其中调用了函数 task。对函数的每次调用都会返回一个附加到数组的字符串。我想并行化这个 for 循环。我尝试使用&,但它似乎不起作用。
这是未并行化的代码。
task (){ sleep 1;echo "hello $1"; }
arr=()
for i in {1..3}; do
arr+=("$(task $i)")
done
for i in "${arr[@]}"; do
echo "$i x";
done
输出是:
hello 1 x
hello 2 x
hello 3 x
太棒了!但是现在,当我尝试将它与
[...]
for i in {1..3}; do
arr+=("$(task $i)")&
done
wait
[...]
输出为空。
【问题讨论】:
标签: linux bash shell parallel-processing