Answers:
他们是要区分当前和以前的工作;最后一个工作和倒数第二个工作用于两个以上的工作,+
最后一个和-
倒数第二个。
来自man bash
:
可以使用引用以前的作业
%-
。如果只有一个作业,%+
并且%-
两个作业都可以用来引用该作业。在与作业有关的输出中(例如,作业命令的输出),当前作业始终用标记+
,而先前作业 始终用标记-
。
$ sleep 5 &
[1] 21795
$ sleep 5 &
[2] 21796
$ sleep 5 &
[3] 21797
$ sleep 5 &
[4] 21798
$ jobs
[1] Running sleep 5 &
[2] Running sleep 5 &
[3]- Running sleep 5 &
[4]+ Running sleep 5 &
$
[1] Done sleep 5
[2] Done sleep 5
[3]- Done sleep 5
[4]+ Done sleep 5
我猜您指的是您通过来检查工作时的情况$jobs
。但是,您可能已经知道,它n
表示作业编号。在[n] +
表示被称为最后的工作。
[n] -
表示倒数第二个作业。
例如:
chris@chris-VirtualBox:~$ sleep 30 &
[1] 904
chris@chris-VirtualBox:~$ sleep 50 &
[2] 972
chris@chris-VirtualBox:~$ jobs
[1]- Running sleep 30 &
[2]+ Running sleep 50 &
这就是为什么,在这种情况下,我们sleep 50 &
是最后一个:[2]+
和sleep 30 &
是倒数第二个:[1]-