Answers:
如果可以避免在控制台中编写内容,则取决于如何创建程序的输出。如果将其流式传输到标准输出,那么就足够了
$ eclipse >/dev/null
并且不应该输出。
还要抑制错误消息:
$ eclipse >/dev/null 2>&1
或简单地:
$ eclipse &>/dev/null
但是,如果他们以不同的方式进行操作,那么阻止它在控制台中写入可能是一个问题。
如果可能,请使用MuffinStateWide提供的解决方案
eclipse 2&>1 >/dev/null
摆脱它stderr
。默认仅重定向stdout
。并且没有“不同”的方式来执行此操作,如果将stdout和stderr都清除到下层,将没有任何输出。
eclipse &> /dev/null
。这将stdin和stderr都捕获到重定向点(以bash表示)
您可以创建一个bash函数,该函数将为命令名加上别名,并添加一些额外的功能来实现您的要求。
例如:假设您要gvim
从命令行启动(GUI文本编辑器)。
您可以编写如下函数:
function gvim () {
nohup gvim "$@" > /dev/null 2>&1 & disown
}
(将此功能添加到您的.bashrc
或.bash_aliases
文件中,以便始终加载)
说明:
这将为该gvim
命令加上bash函数的别名gvim
(因此,当您gvim
在bash提示符下键入时,它将调用您的gvim
函数,而不是执行real gvim
命令。您的函数随后将调用real gvim
命令(并接受其常规参数)。一些附加功能:
/dev/null
(抑制输出到终端)&
在后台运行命令(因此不会阻止您的外壳)disown
从外壳中删除后台作业(因此它不会出现在活动作业列表中)nohup
从终端分离进程(因此,您可以终止shell会话或关闭终端而不会终止进程)