【问题标题】:Does $! mean something in shell scripting美元!在 shell 脚本中意味着什么
【发布时间】:2013-08-30 01:14:39
【问题描述】:

$! 是否存在于 bash/shell 脚本中,如果存在,请告知其用途。为什么在命令行上运行echo $! 会出现空白?

【问题讨论】:

标签: linux bash shell scripting


【解决方案1】:

$! 是您的 shell 在后台运行的最后一个程序的 PID

【讨论】:

  • 任何想法,它如何获取已被杀死或完成的最后一个后台进程的PID?
  • @pRAShANT 没有简单的方法。您可以使用您选择的数组类型记录您运行的所有进程,然后使用 SIGCHLD 陷阱处理程序在每次进程终止/终止时触发,然后检查哪个进程不再存在。该方法是不准确的,特别是如果两个进程同时终止。通过/prockill -s 0 等检查进程是否仍然存在也很慢。而且我不确定通过作业控制进行流程管理是否总是可行或有效的,它不会遗漏任何东西。
【解决方案2】:

除了其他回答,这个回声

echo $!

如果您尚未在当前 shell 中运行任何后台进程,则将打印空白。如果你现在运行:

date &
echo $!

然后它会打印类似的东西(即最后执行的后台进程的进程ID):

47833

【讨论】:

    【解决方案3】:

    $! - 显示在后台启动的最后一个进程 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-02
      • 2011-06-04
      • 2023-03-10
      • 2014-12-27
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多