显示当前会话的作业状态。
jobs [ -l | -n | -p ] [ JobID ... ]
jobs 命令显示了当前 shell 环境中已启动的作业状态。如果 JobID 参数没有指定特定作业,就显示所有的活动的作业的状态信息。如果报告了一个作业的终止,shell 从当前的 shell 环境已知的列表中删除作业的进程标识。
/usr/bin/jobs 命令在自己的命令执行环境下执行就不会工作,因为此环境没有适用的作业来处理。基于这个原因, jobs 命令实现为一个 Korn shell 或 POSIX shell 的常规内建命令。
如果指定了 -p 标志,对于每一个进程标识,输出构成一行。如果没有指定标志,标准输出为带以下字段的几行:
如果指定了 -l 标志, 就把一包含进程组标识的字段插入到 state 字段之前。另外,在一个进程组中更多的进程可以输出到一些独立行中,只使用 job-number 和 command 字段。
-l | (小写 L)提供了更多的关于列出的每一个作业的信息。此信息包括了作业号、当前作业、进程组标识、状态和启动作业的命令。 |
-n | 显示自从最后一次通知后停止或退出的作业。 |
-p | 显示了所选定的作业的进程组引导符的进程标识。 |
在缺省情况下,jobs 命令显示了所有已停止作业的状态、所有的在后台正在运行的作业和那些状态已经更改但没有被 shell 报告的作业。
返回下面的退出值:
0 | 成功完成。 |
>0 | 发生一个错误。 |
jobs -l
屏幕输出与以下输出类似的报告:
+[4] 139 Running CC - C foo c& -[3] 465 Stopped mail morris [2] 687 Done(1) foo.bar&
job -p %m
使用示例 1 中报告的作业,屏幕显示以下进程标识:
465
/usr/bin/ksh | 包含 Korn shell jobs 内置命令。 |
/usr/bin/jobs | 包含 jobs 命令。 |
bg 命令、csh 命令、fg 命令、kill 命令、ksh 命令、wait 命令。