Bash 在后台同时运行多个程序实例,这些返回符号是什么意思?
我刚刚启动了一组程序实例(17),以测试它们是否同时运行。这就是终端输出在接近尾端时的样子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
[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