+/- 在后台工作完成后

+/- 在后台工作完成后

在后台运行作业

$ 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]-

相关内容