我想在Linux中执行一个命令并获取已启动进程的进程ID并将其传递给另一个命令。
我在bash中尝试了$!
变量,如果进程像这样直接启动,它会起作用:
ls &
echo $!
但如果我使用这样的exec:
exec ls &
echo $!
$!
变量将为空白。
我必须使用exec。任何线索如何做到这一点?
感谢。
答案 0 :(得分:4)
$!变量是空白的。
你有没有试过这个?
> exec ls & echo "pid = $!"
[1] 29443
pid = 29443
显然,它并不像你理论那样空白。这个过程不必完成; pid立即可用。