在 bash 中启动后台进程时捕获 pid

rwi*_*ams 4 bash

我正在尝试捕获在 bash 中运行的后台进程的 pid。

我试过

somecommand & > somecommand.pid
Run Code Online (Sandbox Code Playgroud)

它将 pid 输出到屏幕,但它不是命令标准输出的一部分。

[1] 1778
Run Code Online (Sandbox Code Playgroud)

ser*_*gio 9

特殊变量$!包含最近放置在后台的作业的 PID:

$ sleep 4 &
$ sleep_pid=$!
$ echo $sleep_pid
4456
Run Code Online (Sandbox Code Playgroud)

这记录在特殊参数man bash