“$!” 是用来?

Ble*_*ers 3 shell

在通过时:

info coreutils 'dd invocation'
Run Code Online (Sandbox Code Playgroud)

我碰到:

dd if=/dev/zero of=/dev/null count=10MB & pid=$!
Run Code Online (Sandbox Code Playgroud)

是什么$!用的?

slm*_*slm 13

如果您在谈论 Bash,它们位于 Bash 手册页的“特殊参数”部分。

!      Expands to the process ID of the most recently executed background 
       (asynchronous) command.
Run Code Online (Sandbox Code Playgroud)

例子

$ sleep 10 &
[1] 22257

$ echo $!
22257
Run Code Online (Sandbox Code Playgroud)

你的命令

所以用这个命令:

$ dd if=/dev/zero of=/dev/null count=10MB & pid=$!
Run Code Online (Sandbox Code Playgroud)

dd命令是后台运行的,并且生成的进程 ID ( $!) 存储在一个变量中pid以备后用。

参考


小智 6

$! 用于获取最近后台命令的PID(进程标识符)。

还有!$

!$ 用于获取最后执行的命令的最后一个参数。