C 我怎样才能等到指定的时间;xterm";完成了?
在我的c-shell文件中,我做了如下操作: xterm-e“源XX0”和 xterm-e“来源XX1”& 等等 代码 “wait”之后的代码将在两个xterm完成后执行,这样做很好 但这也带来了问题。如果我打开了一些ps,比如geditn打开的一个txt文件,或者我打开了一个eclipse,它将挂在那里,因为“wait”正在等待所有作业完成 那么,我怎么能让“等待”只等待这两个xterm作业呢 或者换句话说,我希望这两个“xterm”同时运行。在它们都完成之后,代码就可以继续了。我该怎么做C 我怎样才能等到指定的时间;xterm";完成了?,c,linux,bash,shell,C,Linux,Bash,Shell,在我的c-shell文件中,我做了如下操作: xterm-e“源XX0”和 xterm-e“来源XX1”& 等等 代码 “wait”之后的代码将在两个xterm完成后执行,这样做很好 但这也带来了问题。如果我打开了一些ps,比如geditn打开的一个txt文件,或者我打开了一个eclipse,它将挂在那里,因为“wait”正在等待所有作业完成 那么,我怎么能让“等待”只等待这两个xterm作业呢 或者换句话说,我希望这两个“xterm”同时运行。在它们都完成之后,代码就可以继续了。我该怎么做 非
非常感谢告诉
等待
它应该等待的进程ID:
xterm ... &
pid1=$!
xterm ... &
pid2=$!
wait $pid1 $pid2
假设您使用了一个shell,其中wait
支持多个参数(bash、zsh,…)。如果使用sh实现可移植性,则必须进行两次等待:
wait $pid1
wait $pid2
这将一直等到两者都完成。如果第二个在第一个之前完成,等待将立即返回。Google for
bash job control
并阅读Hi@ahilsend,我发现如果我直接使用PID编号,它会起作用,比如:wait$20234如果我保存编号,比如:sleep 20&set pid1=$!睡眠30&设置pid2=$!wait$pid1$pid2它说wait:argumentsbash支持太多,无法等待多个pid。你在用sh吗?如果它不需要非常便携,那么就改用bash。否则执行两个命令:wait$pid1;等待$pid2代码>这将等待两个操作完成。如果第二个在第一个之前完成,它会给你一个消息,它不是一个孩子,但会立即返回。好吧,我使用的是C Shell。因为这对我有效:wait$20234(20234是我从sleep 30的控制台获得的一个PID&)当我像“pid1=$!”一样保存它时,我想我应该使用“wait$($pid1)”,但$($pid1)是不允许的,这应该很容易做对吗?等等,19601美元19602美元对我来说也很好。我明白了,从来没有用过c外壳。在这种情况下,请尝试\$$pid1。