【问题标题】:Suppress output from & in Linux terminal在 Linux 终端中抑制 & 的输出
【发布时间】:2021-04-14 01:56:03
【问题描述】:

我从多个帖子中看到了关于将输出从程序发送到 /dev/null 以及使用 2>&1 抑制错误输出的答案,但是我如何使用所有这些并抑制输出将其发送到后台通过键入& 符号来处理?

例子:

feh "image.jpg" & >/dev/null 2>&1

仍然返回“[#] {PID}”(当然是数字填写)。如果有人可以帮助我,将不胜感激。

我正在使用 Manjaro Linux,我的内核版本是 5.11.10-1-MANJARO

【问题讨论】:

    标签: linux terminal output


    【解决方案1】:

    一旦遇到&,第一个命令(feh "image.jpg")被发送到后台,然后shell单独执行>/dev/null 2>&1,像这样单独执行什么都不做。在将进程发送到后台之前,您需要设置输出管道/重定向:

    feh "image.jpg" > /dev/null 2>&1 & echo "Second command"

    注意> /dev/null 与1> /dev/null 相同,这意味着您可以使用>/dev/null 2>/dev/null 或1>/dev/null 2>/dev/null 来获得相同的效果。

    对于作业终止输出,您可以像这样wrap your command in parenthesis:

    (feh "image.jpg" > /dev/null 2>&1 & echo "Second command" )

    如链接帖子中所述,请注意,这将使您无法控制使用 & 发回的流程。

    【讨论】:

    • 感谢您的更正,但我的问题仍然存在:“&”(又名“[1] 76571”,例如)的输出仍然存在。我的问题是如何获得这条线。
    猜你喜欢
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    相关资源
    最近更新 更多