2012-06-18 5 views
27

Bash Wie erfassen Sie stderr zu einer Variablen?Bash Wie erfassen Sie stderr zu einer Variablen?

Ich möchte so etwas wie dieses Innere meines Bash-Skript tun

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

Wie Sie stderror Ausgabe in eine Variable schicken?

+2

Dieser Stackoverflow [Thema] (http://stackoverflow.com/questions/962255/how-to-store-standard-error-in- a-variable-in-a-bash-Skript) sollte Ihre Frage beantworten. –

+0

Siehe einen der vielen verwandten Themen und [mehrere Lösungen] (http://mywiki.wooledged.org/BashFAQ/002) – ormaaj

Antwort

55

sowohl auf eine Variable stdoutundstderr zu speichern:

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

Beachten Sie, dass diese stdout und stderr in denselben Variablen verschachtelt.

speichern nurstderr einer Variablen:

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

Ich möchte nur darauf hinweisen, dass Sie beide stderr und stdout auf die Variable speichern. Wenn Sie nur 'stderr' benötigen, verwenden Sie' 2> & 1>/dev/null' –

+0

@IgorChubin Guter Punkt. Ich habe meine ursprüngliche Antwort darauf gegründet, wie es aussah, als ob das OP wollte, aber das war nicht unbedingt das, was sie eigentlich wollten. Siehe meine Änderungen. –

+0

Ziemlich sicher, dass sollte "' stdout' _and_ 'stderr'", nein? –

Verwandte Themen