[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: STDERR to pipe



Il 16/07/2010 11:50, Alessandro ha scritto:
Alessandro T. wrote:
ciao omonimo,
la prova l'ho fatta per mia futura memoria ;-)

$ cat errore.sh
#! /bin/bash
echo stdOUT
echo stdERR>&2

$ ./errore.sh
stdOUT
stdERR

$ ./errore.sh | sed 's/std/STD/'
stdERR
STDOUT

quindi effettivamente uno è lo standard out e l'altro lo standard err
e per rispondere alla tua domanda:

$ ./errore.sh  2>&1>/dev/null | sed 's/std/STD/'
STDERR


Evidentemente il>/dev/null "succhia" solamente lo stdOUT (del resto
prima del ">" ci dovrebbe essere un "1" sottinteso, nevvero?) lasciando
passare lo stdERR che poi finisce nel tubo...


Grazie.
Alessandro

Esatto, la shell fa le cose nell'ordine in cui le scrivi: "2>&1" sposta stderr su qualunque cosa sia stdout *in quel momento*; ">/dev/null" sposta lo stdout su /dev/null, ma stderr ormai ha il vecchio valore di stdout.. è un po' come dire
"stdout=pipe; stderr=stdout; stdout=/dev/null"


Reply to: