ksh entspricht perl $! Fehlerursache

1046
Abhinav

Gibt es ein Äquivalent von $! in ksh, was liefert die fehlerzeichenfolge? $? speichert nur den Exit-Code.

2

1 Antwort auf die Frage

2
jamuraa

Unglücklicherweise nicht. Im Allgemeinen können Sie beim Shell-Scripting nur Informationen abrufen, die das Programm an die Umgebung übermittelt, die auf den meisten Unix-Systemen nur der Rückgabecode ist. Um herauszufinden, was ein Fehlerrückgabewert bedeutet, müssen Sie in der Handbuchseite nach dem Programm suchen, das einen Fehler zurückgegeben hat.

Beispielsweise gibt das grepProgramm den Wert 1 zurück, wenn keine übereinstimmenden Zeilen gefunden werden, und einen Wert von 0 (im Allgemeinen für den Erfolg verwendet), wenn gefundene Zeilen gefunden wurden. Ein Rückgabewert von 2 wird für einen Fehler verwendet. Dies ist in der grep-Manpage dokumentiert

In vielen Fällen wird der Fehler auch auf STDERR gedruckt.