当我用
for s in {1,2,3}; do command_$s &; done;
jobs
我可以使用以下命令查看所有这些
$ jobs
[2] running command_1
[3] - running command_2
[4] + running command_3
我知道第一列是ID(例如我可以kill -9 %2
杀死command_
)
但是+
,-
和 的缺失意味着什么? 运行man jobs
和jobs -h
不起作用。
答案1
在里面Bash 的信息手册,第 7.1 章“作业控制基础”中有描述:
作业编号 n 可以表示为“%n”。符号“%%”和“%+”表示 shell 的当前作业概念,当前作业是最后一个在前台停止或在后台启动的作业。单个“%”(没有附带作业说明)也表示当前作业。可以使用“%-”引用前一个作业。如果只有一个作业,则“%+”和“%-”都可用于引用该作业。
在与作业有关的输出(例如,命令的输出
jobs
)中,当前作业始终用“+”标记,而前一个作业则用“-”标记。