在后台运行作业
$ command &
完成后,终端打印
[n]+ command
或者
[n]- command
所以有时它是一个加号,有时它是一个减号[n]
。
加/减是什么意思?
答案1
他们要区分当前工作和以前的工作;最后一项工作和倒数第二项工作用于两个以上的工作,其中+
最后一项和-
倒数第二项工作。
从man bash
:
可以使用 来引用之前的工作
%-
。如果只有一个工作,%+
则 和%-
都可以用来指代该工作。在与作业相关的输出中(例如,jobs 命令的输出),当前作业始终带有 标记+
,前一个作业始终带有 标记-
。
例子:
$ 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
答案2
我猜您指的是通过$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]-