将 mplayer 作为 gnome 终端的参数启动时,没有从 tee 记录的输出

将 mplayer 作为 gnome 终端的参数启动时,没有从 tee 记录的输出

我想查看 mplayer 的正常终端输出,并将其写入日志。
当我从命令行运行 mplayer 时效果很好,例如:

mplayer "$HOME/gdr01.wav" 2>&1 |tee $HOME/junk.log

但是,我想在它自己的 gnome 终端窗口中启动 mplayer。尽管终端显示有效,但以下命令均不会写入日志。

(gnome-terminal -e "mplayer $HOME/gdr01.wav 2>&1 |tee $HOME/junk.log" &)
 gnome-terminal -e "mplayer $HOME/gdr01.wav 2>&1 |tee $HOME/junk.log" &

这里有什么作用,让它发挥作用的技巧是什么?

编辑: 问题是我得到了终端的消息被写入日志(例如ibus警告)。然而,尽管播放器生成数千行,但没有任何一行被写入日志。

答案1

发生的事情是 gnome-terminal 的命令行解析很时髦。您正在mplayer使用 /home/ferer/gdr01.wav2>&1|tee作为/home/ferer/junk.log参数运行。如果您等待音频文件结束,您将在终端关闭前一微秒内看到有关这些不存在文件的错误消息。

要么弄清楚 gnome-terminal 的复杂规则。或者,我建议:使用该-x选项而不是-e显式调用 shell。

gnome-terminal -x sh -c 'mplayer "$HOME/gdr01.wav" 2>&1 |tee $HOME/junk.log'

答案2

gnome-terminal -x mplayer $HOME/gdr01.wav 2>&1 |tee $HOME/junk.log &

该命令至少创建日志文件。

答案3

我会尝试放在exec前面mplayer,因为它在不同的外壳上运行。

相关内容