用 bash 在后台运行进程相当容易。
$ echo "Hello I'm a background task" &
[1] 2076
Hello I'm a background task
[1]+ Done echo "Hello I'm a background task"
但是输出很冗长。第一行打印了后台任务的作业 ID 和进程 ID,然后是命令的输出,最后是作业 ID、状态和触发作业的命令。
有没有一种方法可以抑制运行后台任务的输出,使输出看起来与末尾没有“&”符号的输出完全一样?即:
$ echo "Hello I'm a background task" &
Hello I'm a background task
我问的原因是我想运行后台进程作为 tab 完成命令的一部分,因此该命令的输出必须不间断才能有意义。
最佳答案
与完成无关,但您可以通过将调用放在子 shell 中来抑制输出:
(echo "Hello I'm a background task" &)
关于bash - 在不打印作业和进程 ID 的情况下在后台运行 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7686989/