bash - 在不打印作业和进程 ID 的情况下在后台运行 bash 命令

标签 bash bash-completion

用 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/

相关文章:

bash - curl ——失败而不抑制标准输出

python - 替换 JSON 文件中的字符串

linux - 尝试了解 PATH 在 Linux 上的设置方式(Ubuntu 16.04 上的 bash)

bash - 编写类似于 scp 的 bash 补全脚本

bash - 自定义 bash 完成输出 : each suggestion on a new line

bash - 如何 Bash 完整的三部分模式

linux - 使用 sed 将文件中的特定行追加到另一个文件的末尾

bash - 如何使用 Bash 创建文件的副本,在扩展名前添加一个额外的后缀?

bash - 如何在不影响其他完成脚本的情况下重置 COMP_WORDBREAKS?

bash - 防止 bash 完成两次打印回复