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

标签 linux bash command-line process exec

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

我在 bash 中尝试了 $! 变量,如果进程像这样直接启动它就可以工作:

ls &
echo $!

但是如果我这样使用exec:

exec ls &
echo $!

$! 变量将为空。

我必须使用 exec。有什么线索可以解决这个问题吗?

谢谢。

最佳答案

the $! variable would be blank.

你试过这个吗?

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

显然它并不像您推测的那样空白。该过程不必完成; pid 立即可用。

关于linux - 使用 exec 执行命令并将进程 ID 传递给另一个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24741163/

相关文章:

linux - 多个文件夹中的相同文件的副本......如何找到最深的副本?

c++ - 在 macos 中热用 gdb

linux - Linux 上的只读文件系统基准测试软件

bash - 从 mysqldump 输出中删除特定表的插入数据(sed?)

android - 从命令行构建android项目

PHP SVN 更新 - TortoiseSVN

command-line - 如何将一系列图像转换为文件名不是从 1 开始的电影?

linux - 错误 : pipeline could not be constructed: no element "audiotestsrc"

MySQL 查询被杀死——如何防止这种情况发生?

python - Bash 到 Python : flatten directory tree