等待在新终端中执行的子脚本

时间:2014-04-05 16:01:33

标签: linux bash

我有一个父脚本,可以执行三个子脚本。我试图1)在新的终端窗口中打开每个子脚本; 2)在继续之前,让每个子脚本的父脚本等待退出。所以:

  1. 新终端中的child-1
  2. (等待孩子1退出)
  3. 新终端中的child-2
  4. (等待孩子2退出)
  5. 新终端中的child-3
  6. (等孩子3退出)
  7. 出口

    我可以在新的终端窗口中打开子脚本,但是所有三个子脚本都按顺序执行而无需等待。这是父脚本:

    #!/bin/bash
    
    # workspace
    mkdir ./temp
    
    # system setup
    echo "***** setting up system environment *****"
    gnome-terminal -x ./setup_sysconfig > setup-system.log
    wait
    
    # user setup
    echo "***** setting up user environment *****"
    gnome-terminal -x ./setup_usrconfig > setup-user.log
    wait
    
    # server setup
    echo "***** setting up server environment *****"
    gnome-terminal -x ./setup_svrconfig > setup-server.log
    wait
    
    # cleanup
    rm -r ./temp
    
    echo "Initial System Setup Complete"
    exit 0
    

    如何在强制父脚本等待每个脚本完成的同时让子脚本在单独的终端中运行? (我在Ubuntu 13.04上。)

1 个答案:

答案 0 :(得分:2)

wait只会等待您发送到后台的流程完成。我相信如果您使用--disable-factory的{​​{1}}选项,那么脚本将等待命令完成:

gnome-terminal