TCSH: Eu quero exibir a saída do comando e redirecionar para um arquivo

0

Eu olhei para a man page do TSCH, que dizia: "O arquivo de saída ou o arquivo de erro pode ser '/ dev / tty' para enviar a saída para o terminal." Então, se eu puder redirecionar para dois locais diferentes, isso funcionaria. Mas chamando, digamos,

(make foo > /dev/tty) > error.txt me deixa com error.txt vazia. Como faz o make foo | tee error.txt .

    
por JETM 22.01.2016 / 15:26

1 resposta

2

Você precisa fazer:

 (command > stdout) >& stderr

Por exemplo:

 (make foo > /dev/tty) >& error.txt

O primeiro > redireciona o stdout para o tty, então o >& redireciona o que sobrar para error.txt.

No seu caso, seria assim:

~> (make foo > /dev/tty) >& error.txt
~> cat error.txt
make: *** No rule to make target 'foo'.  Stop.

Se você quiser que ambos exibam, e gravem em um arquivo, |& é análogo a >& , ou seja:

~> ( python err.py > /dev/tty ) |& tee error.txt
This is stdout
This is stderr
~> cat error.txt
This is stderr
    
por 22.01.2016 / 16:00