0

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

xterm -e "源 xxxx0" &

xterm -e "源 xxxx1" &

等待

代码....

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

但这也带来了问题。如果我打开了一些 ps,比如 geditn 打开的 txt 文件,或者我打开了 eclipse,它会挂在那里,因为“wait”正在等待所有作业完成。

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

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

非常感谢

4

1 回答 1

2

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

xterm ... &
pid1=$!

xterm ... &
pid2=$!

wait $pid1 $pid2

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

wait $pid1
wait $pid2

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

于 2013-08-07T11:19:17.590 回答