如果linux后台作业完成(以&开头),这些+/-是什么意思


43

如果我以“&&”结尾开始一个进程,它将被派生到后台。完成后,我得到的输出类似于

[1]+  Fertig   my_script

我有一个本地发行版,但这没关系。

我看到的是在方括号中的作业ID,后跟加号(+)。

如果我有多个并行工作,我得到

[1]-  Fertig   my_script
[2]+  Fertig   my_script

现在,我-的第一项工作为减号(),第二项工作为加号(+)。

我不知道,那些是什么+/ -意思。

使用互联网搜索引擎找不到任何答案。

Answers:


57

来自man bash

在与作业有关的输出中(例如,jobs命令的输出),当前作业始终用a标记+,而先前作业则用a 标记-

也就是说,标记为a的作业+是最后发送到后台的作业。

fg不带参数使用时,它也会被带到前台:

$ /tmp/script &
[1] 9871
$ /tmp/script2 &
[2] 9876
$ /tmp/script3 &
[3] 9881
$ /tmp/script4 &
[4] 9886
$ jobs
[1]   Running                 /tmp/script &
[2]   Running                 /tmp/script2 &
[3]-  Running                 /tmp/script3 &
[4]+  Running                 /tmp/script4 &
$ fg
/tmp/script4

标有a的作业-倒数第二个发送到后台。其他后台作业未标记。


很高兴能为您提供帮助。
2013年

1
因此,+表示fg / bg命令将执行的操作很有用,但是-有用吗?
tsbertalan '16

@tsbertalan我同意,我看不到有任何用处。我也感到困惑,我希望-可以识别首先发送到后台的作业,但也许只是我...
jaume 2016年

我有时在那里看到两个优点或两个缺点。确实不符合“最后”或“当前”定义。那是bash 4.3.42。
Jan-Philip Gehrcke '16

8
@tsbertalan我按Ctrl + Z,然后fg -在两个作业之间切换。减号派上用场。
cozyconemotel
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.