在 Bash 脚本中,“$!”是什么意思?

在 Bash 脚本中,“$!”是什么意思?

如果我分配一个变量

temp=$!

它的价值是什么?

答案1

$!包含最近执行的后台管道的进程 ID。从man bash

特殊参数

shell 对几个参数进行了特殊处理。这些参数仅供参考;不允许向他们分配。

...

!- 扩展到最近执行的后台(异步)命令的进程 ID。

例如:

$ sleep 60 &
[1] 6238
$ echo "$!"
6238

答案2

来自 Bash 的手册页:

   !   Expands to the process ID of the most recently executed 
       background (asynchronous) command.

因此$!将包含最后一个后台作业的进程 ID (PID)。

例子

$ sleep 100 &
[1] 18813

$ echo "$!"
18813

参考

相关内容