启动多个后台作业并按顺序打印结果

时间:2015-05-29 14:20:39

标签: bash output background-process

我想开始一些并行作业,我希望按顺序输出结果。在我的情况下,作业是与curl一起发送的HTTP请求,我只对响应代码感兴趣。以下是我到目前为止的情况:

for i in {1..6}
do
    curl -H "Content-Type: application/json" -X POST \
        -d 'some data' \
        -s -o /dev/null -w "%{http_code}\n" \
        <url of service> &
done
wait

这将打印每个请求的结果代码,但输出顺序不正确。我能以任何方式纠正输出的顺序吗?

请求实际上必须并行发送。

1 个答案:

答案 0 :(得分:0)

将结果存储到文件中,然后在所有内容完成后将其打印出来:

for i in {1..6}
do
    curl -H "Content-Type: application/json" -X POST \
        -d 'some data' \
        -s -o /dev/null -w "%{http_code}\n" \
        <url of service> > result_$i &
done
wait

for i in {1..6}
do
    cat result_$i
    rm result_$i
done