Nenhuma saída para logar do tee ao iniciar o mplayer como um arg para o gnome-terminal

1

Eu quero ver a saída de terminal normal do mplayer e também gravá-la em um log.
Isso funciona bem quando eu executo o mplayer a partir da linha de comando, por exemplo:

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

No entanto, quero lançar o mplayer em sua própria janela do terminal do gnome. Nenhum dos seguintes comandos escreve no log, embora a exibição do terminal funcione.

(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" &

O que está em jogo aqui e qual é o truque para fazê-lo funcionar?

EDIT: O problema é que eu obtenho as mensagens do terminal sendo gravadas no log (por exemplo, um aviso ibus ). No entanto, apesar de mplayer gerar milhares de linhas, nenhuma é gravada no log.

    
por Peter.O 24.11.2011 / 19:22

3 respostas

3

O que está acontecendo é que a análise de linha de comando do gnome-terminal é funky. Você está executando mplayer com /home/ferer/gdr01.wav , 2>&1 , |tee e /home/ferer/junk.log como argumentos. Se você esperar pelo final do arquivo de áudio, verá mensagens de erro sobre esses arquivos inexistentes por um microssegundo antes de o terminal ser fechado.

Descobrir a intrincada regra do gnome-terminal. Ou o que eu recomendo: yse a opção -x em vez de -e e invocar um shell explicitamente.

gnome-terminal -x sh -c 'mplayer "$HOME/gdr01.wav" 2>&1 |tee $HOME/junk.log'
    
por 25.11.2011 / 02:42
0
gnome-terminal -x mplayer $HOME/gdr01.wav 2>&1 |tee $HOME/junk.log &

Este comando, pelo menos, cria o arquivo de log.

    
por 24.11.2011 / 22:27
-1

Eu tentaria colocar exec na frente de mplayer , já que ele está sendo executado em um shell diferente.

    
por 24.11.2011 / 22:15