我怎么能等到指定的“xterm”完成?

时间:2013-08-07 11:04:29

标签: c linux bash shell

在我的c-shell文件中,我做了类似的事情:

xterm -e“source xxxx0”&

xterm -e“source xxxx1”&

等待

代码。

在两个xterm完成后执行“wait”之后的代码工作正常。

但它也有问题。如果我有一些ps打开,就像geditn打开的txt文件,或者我打开了eclipse,它会挂起,因为“等待”等待所有作业完成。

那么我怎样才能让“等待”等待那两个xterm工作。

或者换句话说,我希望这两个“xterm”同时运行。完成后,代码可以继续。我该怎么做?

非常感谢

1 个答案:

答案 0 :(得分:2)

告诉wait它应该等待的进程ID:

xterm ... &
pid1=$!

xterm ... &
pid2=$!

wait $pid1 $pid2

假设您使用的是wait支持多个参数的shell(bash,zsh,...)。如果你使用sh来实现可移植性,那么你必须做两次等待:

wait $pid1
wait $pid2

这将等待,直到两者都完成。如果第二个在第一个之前完成,则等待将立即返回。