Wie kann ich in Shell Skripten die Ausgabe auf stdout unterdrücken ?
Wenn ich zum Beispiel in einem Skript einen "ping.www.test.com > /dev/null" mache, klappt das solange, solange ping keinen Fehler meldet. Also www.test.com "oben" ist. Wenn www.test.com aber nicht erreichbar ist, bekomme ich die Fehlermeldung auf die Konsole. und das soll nicht sein, da für die Fehlerbearbeitung das Skript zuständig ist.
und warum funktionier " > /dev/null" nicht bei Fehlermeldungen ?
Keine Ausgabe auf stdout
Re: Keine Ausgabe auf stdout
Fehlermeldungen werden nicht nach stdout geschickt, sondern nach stderr. stderr kann mit "2>" umgeleitet werden, also z.B.:
ping www.test.com 2> /dev/null
um nur stderr nach /dev/null umzuleiten,
oder
ping www.test.com > /dev/null 2> error.log
um stdout nach /dev/null und stderr in eine Datei umzuleiten,
oder
ping www.test.com > /dev/null 2>&1
um stdout nach /dev/null umzuleiten und stderr nach stdout (also im Endeffekt beide nach /dev/null).
Dominic
ping www.test.com 2> /dev/null
um nur stderr nach /dev/null umzuleiten,
oder
ping www.test.com > /dev/null 2> error.log
um stdout nach /dev/null und stderr in eine Datei umzuleiten,
oder
ping www.test.com > /dev/null 2>&1
um stdout nach /dev/null umzuleiten und stderr nach stdout (also im Endeffekt beide nach /dev/null).
Dominic
Re: Keine Ausgabe auf stdout
und die kurzform um stdout und stderr umzuleiten:
ping www.test.com &> /dev/null
ping www.test.com &> /dev/null