[TiLUG] redirezione input/output

Matteo D'Alfonso matteo.dalfonso@gmail.com
Ven 26 Lug 2013 17:16:24 CEST


E ringrazia che non sei in tcsh!

L'ordine e' sbagliato, prima si redirige STDERR su STDOUT e poi si manda il
vecchio STDOUT su /dev/null

bash-3.2$  ls foobar barfoo .cshrc
ls: foobar: No such file or directory
ls: barfoo: No such file or directory
.cshrc

bash-3.2$ ls foobar barfoo .cshrc 2>&1 > /dev/null | egrep  'foobar|cshrc'
ls: foobar: No such file or directory

Anti-intuitivo e non so perche' funziona, ma e' cosi'

Ciao,
Mat.






2013/7/26 studente ing <liutprando_89@hotmail.it>

> Ciao a tutti! Mi son imbattuto in un problemino che ho risolto, ma non
> capisco il motivo...
>
> volevo estrarre un dato dallo standard error col comando "grep", per far
> questo ho redirezionato lo standard output del programma verso /dev/null,
> mentre lo standard error verso standard output e poi ho messo grep in
> pipe... ho scritto una cosa del tipo:
>
> comando > /dev/null 2> /dev/stdout | grep blabla
>
> sperando che cercasse "blabla" nello standard error del comando.
>
> con una piccola ricerca ho trovato che funziona così:
>
> comando > /dev/null 2>&1 | grep blabla
>
> la mia domanda è "non sono esattamente la stessa cosa?" Dato che i due
> risultati sono diversi credo proprio di no. La giustificazione che do' è
> che il primo tentativo prima redireziona stderr verso stdout e poi stdout
> verso null, mentre nel secondo prima redireziona l'output verso null e poi
> stderr verso stdout che stavolta può andare in pipe a grep. Se così fosse
> perchè? E' un problema di precedenze?
>
> Grazie a tutti :)
>
> EnergiaPotenziale
>
>
> --
> Mailing list info: http://lists.linux.it/listinfo/tilug
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/tilug/attachments/20130726/66271033/attachment.html>


Maggiori informazioni sulla lista TiLUG