使用exec执行命令并将进程ID传递给另一个命令

时间:2014-07-14 16:22:43

标签: linux bash command-line process exec

我想在Linux中执行一个命令并获取已启动进程的进程ID并将其传递给另一个命令。

我在bash中尝试了$!变量,如果进程像这样直接启动,它会起作用:

ls &
echo $!

但如果我使用这样的exec:

exec ls &
echo $!

$!变量将为空白。

我必须使用exec。任何线索如何做到这一点?

感谢。

1 个答案:

答案 0 :(得分:4)

  

$!变量是空白的。

你有没有试过这个?

> exec ls & echo "pid = $!"
[1] 29443
pid = 29443

显然,它并不像你理论那样空白。这个过程不必完成; pid立即可用。