在后台完成作业后+/-


21

在后台运行作业

$ command &

完成后,终端打印

[n]+    command

要么

[n]-    command

所以有时候是加号,有时是负号[n]

正负是什么意思?

Answers:


19

他们是要区分当前和以前的工作;最后一个工作和倒数第二个工作用于两个以上的工作,+最后一个和-倒数第二个。

来自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

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


您对这种情况的描述不清楚,系统无法预测哪个作业将首先结束。
朱莉·佩勒捷

我明白您的意思,我要强调要点
Klamz '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.