2012-06-18 13 views
27

Bash come si acquisisce lo stderr in una variabile?Bash come si acquisisce lo stderr in una variabile?

mi piacerebbe fare qualcosa di simile all'interno del mio script bash

sh -c path/myExcecutable-bin 2>&1 =MYVARIABLE 

Come si fa a mandare in uscita stderror ad una variabile?

+2

Questo StackOverflow [thread] (http://stackoverflow.com/questions/962255/how-to-store-standard-error-in- a-variable-in-a-bash-script) dovrebbe rispondere alla tua domanda. –

+0

Vedere uno dei molti thread correlati e [diverse soluzioni] (http://mywiki.wooledge.org/BashFAQ/002) – ormaaj

risposta

55

per salvare sia stdoutestderr ad una variabile:

MYVARIABLE="$(path/myExcecutable-bin 2>&1)" 

Si noti che questo interleaves stdout e stderr nella stessa variabile.

Per salvare solostderr ad una variabile:

MYVARIABLE="$(path/myExcecutable-bin 2>&1 > /dev/null)" 
+5

Voglio solo notare che salverete sia stderr che stdout nella variabile. Quando hai bisogno solo di 'stderr' usa' 2> & 1>/dev/null' –

+0

@IgorChubin Buon punto. Stavo basando la mia risposta originale su quello che sembrava l'OP voleva fare, ma non è necessariamente quello che volevano realmente. Guarda i miei cambiamenti. –

+0

Abbastanza sicuro che dovrebbe essere "' stdout' _and_ 'stderr'", no? –

Problemi correlati