感叹号变量 `$!`

感叹号变量 `$!`

我一直在准备 Unix 考试,经常看到感叹号变量 -$! 如果我echo $!在 Mac shell 上写,会告诉我类似“你有邮件......”之类的内容。

这样做的目的是为了存储我是否有任何邮件或者还有其他什么?

编辑:有趣的巧合发生了。就在我写的时候,echo $!我的 Shell 也通知我,我有一些邮件。这就是我写邮件部分的原因。

答案1

$!是最近的后台命令的PID。

这个优秀的答案对于其他特殊参数。

答案2

$MAILCHECK命令完成后或经过 600 秒后,shell 会检查新邮件。

echo $!打印最后一个后台进程的PID。之后,可能会检查邮件。

答案3

$!替换为当前 shell 中最后一个置于后台的进程的进程标识符(如果有)。这bash手动的提供所有此类特殊参数的详细信息。

要查看实际效果:

echo $!

应该打印0(假设没有后台作业)

man bash &
echo $!

man应打印后台进程的进程标识符。完整的输出应该类似于

$ man bash &
[1] 4319
[1]  + 4319 suspended (tty output)  man bash
$ echo $!
4319

相关内容