Bash 在后台同时运行多个程序实例,这些返回符号是什么意思?

Bash 在后台同时运行多个程序实例,这些返回符号是什么意思?,bash,job-control,Bash,Job Control,我刚刚启动了一组程序实例(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

我刚刚启动了一组程序实例(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]+是什么意思?只是他们是最后两个要完成的过程?

来自:

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

(重点是我的)


因此,这并不是说它们是最后一个完成的,而是说它们是最后一个在后台启动的。

来自
bash
手册页:

作业控制

上一个作业可以使用%-。在与作业相关的输出中(例如 作业命令),当前作业始终标记为+,上一个作业标记为-。没有伴随工作的单身女性 规范)也指 目前的工作


这来自bash手册页:

在与作业相关的输出中(例如,作业命令的输出), 当前作业始终标记为+,上一个作业标记为 a-


因此,基本上
+
后面的
[17]
是因为它是最后一个开始的作业,而
-
后面的
[16]
是因为那是以前的作业。

我选择这个答案是因为它有到手册页的链接。其他答案也很有帮助。感谢您的快速回复!
When bash starts  a  job
   asynchronously (in the background), it prints a line that looks like:

          [1] 25647