c - 我怎样才能等到指定的 "xterm"完成?

标签 c linux bash shell

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

xterm -e "source xxxx0"&

xterm -e "source xxxx1"&

等待

代码....

“等待”之后的代码将在两个 xterm 完成后执行。

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

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

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

非常感谢

最佳答案

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

xterm ... &
pid1=$!

xterm ... &
pid2=$!

wait $pid1 $pid2

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

wait $pid1
wait $pid2

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

关于c - 我怎样才能等到指定的 "xterm"完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18101731/

相关文章:

计算内存块中所有数字的总和和数组中所有元素的总和

javascript - 允许我通过网络浏览器编辑本地文件的 (Node.js) 应用程序?

linux - () 对简单代码行有什么影响?

linux - 如何在旧版本的 Bash 上测试我的 Bash 脚本?

C 程序在 OSX 和 Windows 上给出不同的结果

无法让 C 程序和 strsep() 和 getenv() 一起工作

c++ - 内存布局 : 2D N*M data as pointer to N*M buffer or as array of N pointers to arrays

c++ - Eclipse Indigo C++ 的指标

linux - 使进程保持事件状态并跟踪最新的 pid

linux - 编译器如何分配使用哪个 so 版本?