我从 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 &!