2017-10-31 1 views
1

Wenn eine Funktion oder ein Skript 0 zurückgibt, bedeutet dies, dass keine Fehler aufgetreten sind.Sollte eine Bash-Funktion bei der Verwendung nicht-0 zurückgeben?

Wenn ein Benutzer die Verwendung einer bestimmten Funktion/eines bestimmten Skripts sehen möchte, z. B. mit foo -h oder foo --help, wird normalerweise ein "Verwendungs" -Bildschirm angezeigt (dort werden Parameter beschrieben und erläutert) . In einigen Fällen, in denen Parameter erforderlich sind, aber keine angegeben sind, wird der Verwendungsbildschirm so angezeigt, als ob -h geliefert würde.

Sollen Funktionen oder Skripte 0 oder nicht 0 bei der Anzeige der Verwendung zurückgeben? Wird es als erwartetes Verhalten betrachtet, um die Verwendung anzuzeigen (besonders wenn es von anderen Funktionen/Skripten aufgerufen wird)?

Antwort

6

Codepaths, die Verwendungsnachrichten anzeigen, sollten einen Exit-Status ungleich haben, wenn sie aufgerufen wurden, weil eine fehlerhafte Verwendung versucht wurde.

Wenn derselbe Fehler auftritt, wenn eine Verwendungsnachricht explizit angefordert wurde, handelt es sich normalerweise nur um Faulheit. (Zur gleichen Zeit wird es nicht allgemein als schädlich angesehen, da die Absicht ist, dass solche Nachrichten von Menschen geparst werden, die nicht besonders auf den Exit-Status achten).

+2

Darüber hinaus sollte die erwartete Nutzungsinfo auf stdout gehen, während unerwartete Nutzungsinformationen stderr sein müssen. Dies ist das Verhalten für alles von GNU 'ls' bis' python'. –

Verwandte Themen