我想查看 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.wav
、2>&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
,因为它在不同的外壳上运行。