Substituindo stdout por stderr

5

É possível redirecionar a saída de um comando para substituir o texto enviado para stdout pelo texto de stderr?

$ ./script
this line is redirected to stdout
this line is redirected to stderr

$ ./script (insert redirections here)
this line is redirected to stderr

Sei que posso usar apenas 1>/dev/null , mas quero saber se há uma maneira de fazer isso com o texto de stderr redirecionado para stdout.

    
por mio 22.09.2013 / 10:44

1 resposta

7

Você pode fazer assim:

./script 2>&1 1>/dev/null

Isso redireciona o fd 2 para o que fd 1 aponta (ou seja, stdout ) e redireciona o fd 1 para /dev/null . O segundo redirecionamento não afeta o primeiro, a saída para o fd 2 será enviada para stdout .

A ordem importa, no entanto. Com isso:

./script 1>/dev/null 2>&1

enviará todas as saídas para /dev/null .

    
por 22.09.2013 / 10:48