【问题标题】:How can I determine how many background processes are running in bash and do a "wait" for each background process?如何确定 bash 中正在运行多少个后台进程并为每个后台进程执行“等待”?
【发布时间】:2018-01-13 06:06:30
【问题描述】:

我不想使用wait 来一般地等待所有后台进程完成,而是要为我正在运行的每个后台进程执行wait %1wait %2 等。

我不知道我的脚本会产生多少后台进程,所以我不知道如何确定我需要发出多少 wait 语句。

如何确定我的脚本生成了多少后台进程,然后为每个后台进程“i”分配一个wait %i

【问题讨论】:

    标签: bash process


    【解决方案1】:

    您可以通过这种方式获取子 PID 列表:

    pgrep -P $$
    

    然后,等待每个 PID:

    for pid in $(pgrep -P $$); do
        wait $pid
    done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 2018-01-12
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      相关资源
      最近更新 更多