我有一个执行三个子脚本的父脚本。我正在尝试 1) 在新的终端窗口中打开每个子脚本;和 2) 让父脚本等待每个子脚本在继续之前退出。所以:
主人
- 新终端中的 child-1
- (等待 child-1 退出)
- 新终端中的 child-2
- (等待 child-2 退出)
- 新航站楼的 child-3
- (等待 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/