这些输出是什么意思?

时间:2009-05-19 20:42:15

标签: linux bash

特别是最后两个分别带有' - '和'+', 它在地球上意味着什么?

[1]   Done                    php start.php bots/admin32.bot.php

[2]   Done                    php start.php bots/admin36.bot.php

[3]   Done                    php start.php bots/admin10.bot.php

[4]   Done                    php start.php bots/admin11.bot.php

[5]   Done                    php start.php bots/admin13.bot.php

[6]   Done                    php start.php bots/admin3.bot.php

[7]-  Done                    php start.php bots/admin4.bot.php

[8]+  Done                    php start.php bots/admin7.bot.php

[root@www2 robot]# 

2 个答案:

答案 0 :(得分:8)

来自Bash Reference Manual

  

职位编号n可能会被称为“%n”。符号“%%”和“%+”指的是当前作业的shell概念,它是在前台或在后台启动时停止的最后一个作业。单个“%”(没有附带的作业规范)也指当前作业。可以使用“%-”引用上一个作业。如果只有一个作业,“%+”和“%-”都可用于引用该作业。在与作业相关的输出(例如,作业命令的输出)中,当前作业始终标记为“+”,而上一个作业标记为“-”。

在Bash的启动和停止作业时的输出中,

  

[n]+ 状态

表示“作业%n(又名作业%+)现在状态”。

答案 1 :(得分:1)

我认为您的命令包含字符&,这导致命令在后台运行。命令完成后,将打印此输出。

示例:

$ echo 1 &
[1] 16021
$
[1]+  Done                    echo 1

要防止这种情况发生,请引用&字符。它可能是您案例中URL的一部分,因此您可以使用:

$ wget "http://www.example.com/index.php?a=1&b=2"

对于+-标志,它们分别指当前和以前的作业。有关详细信息,请参阅job control in bash上的此页。