heb*_*bbo 0 linux bash command-line process exec
我希望您在Linux中执行命令并获取已启动进程的进程ID,并将其传递给另一个命令。
我$!在bash中尝试了该变量,如果进程像这样直接启动,它将起作用:
ls &
echo $!
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样使用exec:
exec ls &
echo $!
Run Code Online (Sandbox Code Playgroud)
该$!变量将为空白。
我必须使用exec。有什么线索可以解决这个问题吗?
谢谢。
$!变量将为空。
你甚至尝试过吗?
> exec ls & echo "pid = $!"
[1] 29443
pid = 29443
Run Code Online (Sandbox Code Playgroud)
显然,它并不像您理论上的那么空白。该过程不必完成;pid可立即使用。