在我的c-shell文件中,我做了类似的事情:
xterm -e“source xxxx0”&
xterm -e“source xxxx1”&
等待
代码。
在两个xterm完成后执行“wait”之后的代码工作正常。
但它也有问题。如果我有一些ps打开,就像geditn打开的txt文件,或者我打开了eclipse,它会挂起,因为“等待”等待所有作业完成。
那么我怎样才能让“等待”等待那两个xterm工作。
或者换句话说,我希望这两个“xterm”同时运行。完成后,代码可以继续。我该怎么做?
非常感谢
答案 0 :(得分:2)
告诉wait
它应该等待的进程ID:
xterm ... &
pid1=$!
xterm ... &
pid2=$!
wait $pid1 $pid2
假设您使用的是wait
支持多个参数的shell(bash,zsh,...)。如果你使用sh来实现可移植性,那么你必须做两次等待:
wait $pid1
wait $pid2
这将等待,直到两者都完成。如果第二个在第一个之前完成,则等待将立即返回。