bash多进程-获取结果并分配给数组

时间:2018-10-08 14:30:53

标签: bash multiprocessing

我想使用多重处理从子流程中获得结果, 然后我要将这些结果分配给变量的数组类型。

我的代码是这样的

for (( i=0; i<${#servers[@]}; i++ ));
    do
        output_strings[$i]=$(ls) &
        pids[${i}]=$!
    done

    for pid in ${pids[*]}; do
        wait $pid
    done

    echo ${#output_strings[@]}

但是,结果没有分配到数组中。

实际上,如果我更改代码output_strings [$ i] = $(ls)&来回显$(ls)&,则可以。

如何分配这些结果?

1 个答案:

答案 0 :(得分:0)

不要将作业发送到后台。将命令本身发送到后台:

output_strings[$i]=$(ls &)