从 shell 调用 VLC 时如何抑制输出

从 shell 调用 VLC 时如何抑制输出

我想禁用从 bash 调用 VLC 时从 VLC 获得的输出。您可以在下图中看到该输出:

那么,我该如何禁用它呢?

像描述的那样将输出重定向到 /dev/null这里不起作用。

请注意,在图片中,我必须发送两次kill 信号才能杀死它,为什么如果只有一个进程呢?或者有两个吗?也许实际上有两个进程,并且使用我的命令仅第一个进程的输出被重定向。?

如果我在后台运行它,然后发送终止信号,首先,看起来进程不再在 shell 中运行,而只是在窗口中运行,但是,很快我又收到一些消息。看看图片:

所以无论如何,我只想禁用该输出。

更新:我也想在后台运行它。

vlc &> /dev/null 

以下应该有效,但现在我已经尝试过,但效果不佳。

vlc "filename" &> /dev/null & 

这就是我所得到的:

我播放该文件,一开始看起来不错,然后我开始更改目录并发出其他命令,VLC 输出再次出现

但这是我第一次尝试,现在它有效了,所以我想它将来也会有效。

答案1

如果使用vlc > /dev/null,标准输出将被重定向到,/dev/null但标准错误将到达终端。您必须使用vlc &> /dev/null将重定向两个标准输出的命令标准误差。我已经测试过这个并且它有效。根据手册,vlc -q将启用“安静”模式(抑制输出) - 我还没有对此进行测试。

编辑我不完全确定“在后台”是什么意思,但是程序屏幕(sudo apt install screen)将允许您在终端中启动命令,然后关闭终端但保持命令运行。nohup也可以这样做。或者,尝试在桌面上按 Alt-F2,您可能会收到运行命令的提示。您可以从那里运行 vlc,但与 screen 不同,您稍后无法在终端中与 vlc 交互。

另一个编辑 这个问题看起来正是您所需要的。如何在命令行模式下禁用VLC输出?

相关内容