Como eu combino stdout e stderr para diferentes shells?

18

Eu sei a resposta para algumas conchas, por exemplo com cmd.exe você pode:

some.exe > out.txt 2>&1

Como você consegue o mesmo para outros shells (bash, ksh, tcsh, powershell, etc)?

    
por pesche 30.07.2009 / 19:10

4 respostas

16

Casca de peixe

Para redirecionar a saída padrão e o erro padrão para o arquivo all_output.txt, você pode escrever:

echo Hello > all_output.txt ^&1
    
por 20.05.2014 / 10:38
5

Para csh e tcsh

some.exec >& out.txt
    
por 30.07.2009 / 20:33
2

Em Powershell , é exatamente o mesmo:

2>&1      Sends errors to the        get-process none, powershell 2>&1
          success output stream.

(de about_Redirection ).

Em bash e ksh pelo menos eu também sei que funciona dessa maneira .

Parece ser uma convenção comum.

Uma maneira rápida de descobrir isso é abrir a página man do shell e fazer uma pesquisa por &1 (com / e, em seguida, digitando &1 ). Isso raramente ocorre em outros contextos.

    
por 30.07.2009 / 19:18
2

No bash você faz exatamente o mesmo.

./some_exec > out 2>&1
    
por 06.08.2009 / 15:39