2016-05-25 5 views
-1

Unter Berücksichtigung der folgenden Shell umleitenWie Redirect Fehler

$ ./test.sh 
./test.sh: line 2: /usr/lib/permDenied: Permission denied 
1 

Wie kann ich den Fehler still und erhalten den Fehlercode sowie zu machen?

+0

Arfff Ich habe alles versucht, was ich mir vorgestellt habe, aber nicht 'echo test 2>/dev/null>/usr/lib/permDenied' ... So frustrierend, ich hätte es wissen müssen: p! – morandg

+0

Dies ist eine doppelte Frage, ich bin sicher-- aber ich suche nicht danach :-) – SaintHax

+0

Shell Kommandozeile ist Reihenfolge abhängig! '2> & 1> Datei' ist nicht äquivalent zu '> Datei 2> & 1' !! siehe http://stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean/16283739#16283739 –

Antwort

-1

Eine Suche hätte dies gefunden, aber hier ist eine Erklärung, warum es für die Zukunft nicht funktionierte.

echo test > /usr/lib/permDenied 2>&1 > /dev/null

You first assign STDOUT to a file (STDOUT -> file) 
You then assign STDERR to STDOUT (STDOUT -> file; STDERR -> file) 
You then assign STDOUT to /dev/null (STDOUT ->/dev/null; STDERR -> file) 

Sie können nicht in die Datei schreiben, so bash STDERR geht noch zur STDERR.