后台进程输出到控制台

后台进程输出到控制台

假设test.sh有一个 bash 脚本,该脚本为空或者仅包含。当脚本在后台运行时,打印到控制台的和exit 0有什么意义?116320

b@sam:~/Documents/bashscripts$ ./test.sh &
[1] 16320
b@sam:~/Documents/bashscripts$ 
[1]+  Done                    ./test.sh
b@sam:~/Documents/bashscripts$ 

然后,如果用户在命令提示符下按下 ENTER 键,如上图所示,将出现另一行,并显示以下内容

[1]+ Done ./test.sh

1数字和符号的意义是什么+

答案1

[1]是后台作业编号,用于 shell 内建命令,例如fg和,bg它们管理在同一个 shell 中运行的多个任务。jobs列出当前作业。

16320是任务的进程 ID 号,如果您需要kill它或类似的东西,它很有用。

[1]+ Done表示后台进程已退出。由于您使用 请求在后台运行该进程./test.sh &,因此它不会等待进程完成就给您一个新的提示(尽管它几乎立即完成)。因此,shell 会在下次给您提示时通知您。

如果有多个作业正在运行,则表示+当前(最近)的作业。

查看bash 手册了解更多信息。

相关内容