Complexidades de redirecionamento de saída

0

Estou tentando fazer com que um script seja encerrado com um erro, caso não consiga acessar um servidor X:

xset -q &> /dev/null || { echo "The Display Server is BROKEN.  Aborting."; exit 1; }

No entanto, estou recebendo a saída de xset -q cuspida para o console. Não sei bem por que. Meu entendimento de &> foi que redirecionou toda a saída.

Alguém pode ajudar?

    
por Rob 17.09.2013 / 20:00

1 resposta

4

Se você quiser redirecionar STDOUT e STDERR para / dev / null para xset -q , faça:

xset -q > /dev/null 2>&1 || { echo "The Display Server is BROKEN.  Aborting."; exit 1; }

O redirecionamento de usar &> só funciona em bash ou zsh . Portanto, você deve usar 2>&1 para permitir que o redirecionamento funcione em todos os shells semelhantes a Bourne.

    
por 17.09.2013 / 20:25