如何阻止 GUI 应用程序向终端发送垃圾邮件?

如何阻止 GUI 应用程序向终端发送垃圾邮件?

我从 konsole 窗口启动一个 GUI 应用程序,它写出完全无用的信息。我不需要这样。有没有办法一劳永逸地阻止这种情况?我试过否认,没有帮助。我想 2>&1 >/dev/null 可能会有所帮助,但这相当乏味!

好吧,让我们发挥创意。一半的答案是使用 preexec(我使用 zsh,但网络上充满了 bash preexec 技巧)并用于ldd检测 libX11(还有什么?)。然后https://stackoverflow.com/a/9188571/308851展示如何创建到 /dev/null 的重定向。我们如何扩展此解决方案以与具有 shell 脚本包装器的程序一起使用?

答案1

我知道这很乏味,但除非您的应用程序可以作为默默执行的选项,否则我会选择

./app > /dev/null 2>&1

如果您不想总是这样写,您可以在 shell 配置文件中创建自己的别名。

.bashrc - for bash

您将需要创建和别名:

alias app="/usr/local/bin/app > /dev/null 2>&1"

更新 .bash_profile 后,只需重新登录或源 ~/.bash_profile 并调用该应用程序。

编辑:根据迈克尔的评论进行更正,实际上 2>&1 位于 /dev/null 之后。想知道这是否与外壳有关。

答案2

在 zsh 中你可以使用&!——也就是说,

gui-app --args --args &!

相关内容