Como redirecionar a saída de um comando 'xterm -hold -e'

1

Eu sei que você pode usar tee para registrar a saída de um comando em um terminal, por exemplo:

df -h | tee ~/log.txt

No entanto, como posso fazer isso com um comando mais complexo como este:

xterm -hold -e program arg1 arg2 arg3

Eu tentei isso sem sucesso:

xterm -hold -e matlab -noxterm -nojvm -r "solver('/path/to/a/folder',1)" | tee ~/log.txt

Meu objetivo é registrar todas as saídas de xterm e não do terminal original. O

    
por Aeronaelius 14.04.2015 / 16:41

3 respostas

1

Redirecionar a saída pode alterar o comportamento de programas executados em um terminal. Se você quiser capturar a saída all do programa, use algo que não interfira no programa, por exemplo, script :

xterm -hold -e script -c "program arguments" output.log

(Linux) ou

xterm -hold -e script output.log program arguments

(OSX, outro BSD)

Como alternativa, você pode configurar xterm para gravar sua tela em uma "impressora", por exemplo, usando o recurso printerCommand , ou usando a entrada do menu Imprimir todos imediatamente .

Leitura adicional:

por 26.02.2016 / 00:40
1

Você pode ativar o log xterm e enviar toda a saída xterm para um arquivo:

xterm -l -lf logfile.txt -e program

    
por 04.11.2016 / 12:44
0

Se você quiser que a saída do programa diga ao xterm para executar, xterm -hold -e " program arg1 arg2 arg3 | tee ~/log.txt"

Então, por exemplo, no meu Ubuntu eu rodaria de gnome-terminal algo como xterm -hold -e " firefox | tee ~/log.txt"

Há também uma opção para registrar erros com

xterm -hold -e program 2> errors.txt que redireciona todos os erros que normalmente vão para o console, para o arquivo

Mas isso é um pouco redundante, eu acho. Executando um programa de um terminal para outro.

    
por 14.04.2015 / 17:11