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

标签 linux bash

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

主人

  1. 新终端中的 child-1
  2. (等待 child-1 退出)
  3. 新终端中的 child-2
  4. (等待 child-2 退出)
  5. 新航站楼的 child-3
  6. (等待 child-3 退出)

退出

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

#!/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 上。)

最佳答案

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

gnome-terminal --disable-factory -x ./setup_svrconfig > setup-server.log

关于linux - 等待在新终端中执行的子脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22883224/

相关文章:

bash - 如何使用 FFmpeg 将视频拆分为 <2.5GB 的部分

linux - 奇怪的 awk 输出包含空格

linux - 使用 pr533 jmrtd 和 pcsc-lite 在 phyflex i.MX6 上读取护照失败

c - mingw64 系统 ("command") 与 shell 中的 "command"不同

java - bash脚本编译java

bash - 列 : randomly keep one 中的重复项

linux - 可以包装linux命令行工具并提供附加功能的工具是什么?

c - 父进程不等待子进程 - C

c++ - QVBoxLayout 什么时候重新计算布局?

c++ - 在windows上的ubuntu中执行.sh文件