redirecionamento dentro e fora do comando de substituição

3

Por que o redirecionamento a seguir fora da substituição de comando não pode suprimir a saída para stderr:

OLD_DATE=$(date --date"three days ago")  2> /dev/null

enquanto este com o redirecionamento dentro da substituição do comando pode:

OLD_DATE=$(date --date"three days ago" 2> /dev/null)
    
por Tim 23.03.2016 / 18:12

1 resposta

4

Parece porque o redirecionamento se aplica ao comando empty após a atribuição. Por exemplo, você obtém o mesmo resultado com este comando:

OLD_DATE=$(date --date"three days ago") true 2> /dev/null

E isso é o mesmo que o seu comando sem a atribuição:

2> /dev/null

(Sim, essa é uma linha de comando válida.)

    
por 23.03.2016 / 18:34

Tags