当我从命令行启动某些程序(如 11.10 中的 eclipse 和文档查看器)时,它会产生大量看似无关紧要的信息。
此外,当它们在后台运行时,它们有时会继续向我目前正在处理的终端产生输出,这令人恼火。
我希望他们只是启动并将背景内容保留在后台。我的理由是,如果您通过 GUI 启动这些程序(例如双击图标),这些消息永远不会显示给我,所以我不需要在命令行中使用它们。
Mis*_*ery 100
如果您可以避免在控制台中写东西,这取决于程序的输出是如何创建的。如果它被流式传输到标准输出,那么它就足够了
$ eclipse >/dev/null
Run Code Online (Sandbox Code Playgroud)
并且不应该输出。
还要抑制错误消息:
$ eclipse >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
或者在 bash 中,只需:
$ eclipse &>/dev/null
Run Code Online (Sandbox Code Playgroud)
但是,如果他们以某种方式以不同的方式执行此操作,那么阻止它在控制台中写入可能会出现问题。
如果可能,请使用 MuffinStateWide 给出的解决方案
Cor*_*erg 15
您可以创建一个 bash 函数,该函数将为命令名称添加别名并添加一些额外的功能来实现您的要求。
例如:假设您想gvim
从命令行启动(一个 gui 文本编辑器)。
你可以写一个这样的函数:
function gvim () {
nohup gvim "$@" > /dev/null 2>&1 & disown
}
Run Code Online (Sandbox Code Playgroud)
(将此功能添加到您的.bashrc
或.bash_aliases
文件中,以便始终加载)
解释:
这将gvim
使用 bash 函数命名命令的别名gvim
(因此,当您gvim
在 bash 提示符下键入时,它将调用您的gvim
函数,而不是执行真正的gvim
命令。然后您的函数调用真正的gvim
命令(并接受其常规参数),一些附加功能:
/dev/null
(抑制输出到终端)&
在后台运行命令(因此您的 shell 不会被阻止)disown
从 shell 中删除后台作业(因此它不会出现在活动作业列表中)nohup
从终端分离进程(这样你就可以结束你的 shell 会话或关闭你的终端而不终止进程)小智 6
尝试添加 --help 作为命令开关并寻找“安静”这应该抑制输出,或者只是从 GUI 启动。并使用开关启动或找到一种通过脚本抑制它的方法
我个人从 cli 启动以获取该输出,所以我不确定所有 GUI 应用程序是否可行。