3

我刚刚启动了我的程序的一堆实例 (17) 来测试它们同时运行。这就是终端输出接近尾声的样子。

    [9]   Done                    perl test.pl -a
    [10]   Done                    perl test.pl -a
    [11]   Done                    perl test.pl -a
    [12]   Done                    perl test.pl -a
    [13]   Done                    perl test.pl -a
    [14]   Done                    perl test.pl -a
    [15]   Done                    perl test.pl -a
    [16]-  Done                    perl test.pl -a
    [17]+  Done                    perl test.pl -a

17 号是最后一个。我想知道,[16]- 和 [17]+ 是什么意思?只是他们是最后两个完成的过程吗?

4

3 回答 3

4

这是来自 bash 手册页:

在与作业有关的输出中(例如,jobs 命令的输出),当前作业总是用 + 标记,前一个作业用 - 标记。

所以基本上+落后[17]是因为这是最后一份工作开始,而-落后[16]是因为那是上一份工作。

于 2013-07-03T21:51:38.347 回答
4

来自Bash 参考手册中的第 7.1 节“作业控制基础”

作业号n可以称为“<code>%n”。符号 '<code>%%' 和 '<code>%+' 指的是 shell 对当前作业的概念,它是最后一个在前台停止或在后台启动的作业。单个“<code>%”(没有随附的作业规范)也指当前作业。可以使用“<code>%-”引用之前的作业。如果只有一个作业,'<code>%+' 和 '<code>%-' 都可以用来指代那个作业。在与作业有关的输出(例如,jobs命令的输出)中,当前作业总是用“<code>+”标记,而前一个作业用“<code>-”标记。

(强调我的)。

所以并不是他们是最后一个完成的,而是他们是最后一个在后台启动的。

于 2013-07-03T21:49:30.753 回答
1

bash手册页:

作业控制...

When bash starts  a  job
   asynchronously (in the background), it prints a line that looks like:

          [1] 25647 

...

可以使用 %- 引用以前的作业。在与作业有关的输出中(例如,jobs 命令的输出),当前作业总是用 + 标记,前一个作业用 - 标记。单个 %(没有随附的作业规范)也指当前作业。

于 2013-07-03T21:51:00.917 回答