Es hängt von der Umgebung ab, aber ich würde sagen, es ist ein schlechter Stil.
Unix-ähnliche Systeme haben die starke Konvention, dass ein Exit-Status von 0 Erfolg und ein Exit-Status ungleich Null Fehler bedeutet. Einige, aber nicht alle Programme unterscheiden zwischen verschiedenen Arten von Fehlern mit unterschiedlichen Exit-Codes ungleich Null. Beispielsweise wird in der grep
Regel 0 zurückgegeben, wenn das Muster gefunden wurde, 1, wenn es nicht gefunden wurde, und 2 (oder mehr), wenn ein Fehler aufgetreten ist, z. B. eine fehlende Datei.
Diese Konvention ist ziemlich fest mit Unix-Shells verbunden. Zum Beispiel in sh
, bash
und anderen Bourne-wie Muscheln, die if
Anweisung behandelt einen 0 Exit - Status als Erfolg / true, und einen von Null verschiedenen Exit - Status als Ausfall / false:
if your-command
then
echo ok
else
echo FAILURE
fi
Ich glaube, dass die Konventionen unter MS Windows ähnlich sind.
Jetzt hindert Sie sicherlich nichts mehr daran, ein eigenes Programm zu schreiben, das unkonventionelle Exit-Codes verwendet, insbesondere wenn nichts anderes damit interagiert. Beachten Sie jedoch, dass Sie gegen eine gut eingeführte Konvention verstoßen, und es könnte später wiederkommen und Sie beißen .
Die übliche Art und Weise, wie ein Programm diese Art von Informationen zurückgibt, besteht darin, diese zu drucken stdout
:
status = $(your-command)
echo Result is $status
set -e
irgendwo ein platziere.