C-muster status

Wenn ein Befehlsname vorhanden ist, wird die Ausführung wie unter Befehlssuche und Ausführung beschrieben fortgesetzt. Wenn es keinen Befehlsnamen gibt, aber der Befehl eine Befehlsersetzung enthielt, muss der Befehl mit dem Exit-Status der zuletzt ausgeführten Befehlsersetzung abgeschlossen werden. Andernfalls muss der Befehl mit einem Null-Exit-Status abgeschlossen werden. Alle anderen Aufgaben beginnen ihren Lebenszyklus in einem heißen Zustand, was bedeutet, dass die asynchronen Vorgänge, die sie darstellen, bereits initiiert wurden und ihr Aufgabenstatus ein anderer Enumerationswert als TaskStatus.Created ist. Alle Aufgaben, die von TAP-Methoden zurückgegeben werden, müssen aktiviert werden. Wenn eine TAP-Methode intern den Konstruktor einer Aufgabe verwendet, um die zurückzugebende Aufgabe zu instanziieren, muss die TAP-Methode Start für das Task-Objekt aufrufen, bevor sie zurückgegeben wird. Verbraucher einer TAP-Methode können sicher davon ausgehen, dass die zurückgegebene Aufgabe aktiv ist, und sollten nicht versuchen, Start für eine Aufgabe aufzurufen, die von einer TAP-Methode zurückgegeben wird. Das Aufrufen von Start für eine aktive Aufgabe führt zu einer InvalidOperationException-Ausnahme. Gibt den Status von coroutine co als Zeichenfolge zurück: “running”, wenn die Coroutine ausgeführt wird (d. h. status genannt); “ausgesetzt”, wenn die Coroutine in einem Aufruf zur Nachgabe ausgesetzt wird oder wenn sie noch nicht gestartet wurde; “normal”, wenn die Coroutine aktiv ist, aber nicht ausgeführt wird (d.

h., sie hat eine andere Coroutine wieder aufgenommen); und “tot”, wenn die Coroutine ihre Körperfunktion beendet hat oder wenn sie mit einem Fehler beendet wurde. Der Exitstatus einer Funktionsdefinition muss Null sein, wenn die Funktion erfolgreich deklariert wurde. andernfalls muss sie größer als Null sein. Der Exit-Status eines Funktionsaufrufs ist der Exit-Status des letzten Befehls, der von der Funktion ausgeführt wird. Die while-Schleife muss kontinuierlich eine zusammengesetzte Liste ausführen, solange eine andere zusammengesetzte Liste einen Null-Exit-Status hat. Der Exit-Status des Falles muss Null sein, wenn keine Muster übereinstimmen. Andernfalls ist der Exit-Status der Exit-Status des letzten Befehls, der in der zusammengesetzten Liste ausgeführt wird. Wenn kein Befehl gefunden wird, muss der Ausgangsstatus 127 sein. Wenn der Befehlsname gefunden wird, es sich jedoch nicht um ein ausführbares Dienstprogramm handelt, muss der Exit-Status 126 sein.

Anwendungen, die Dienstprogramme aufrufen, ohne die Shell zu verwenden, sollten diese Exitstatuswerte verwenden, um ähnliche Fehler zu melden. Der Exit-Status einer sequenziellen Liste ist der Exit-Status des letzten Befehls in der Liste. Wenn einer der Fehler, die als “soll beendet” oder “(kann) verlassen werden, tritt in einer Unterschale ein Teil der Unterschale auf (bzw.) mit einem Status ungleich Null, aber das Skript, das die Untershell enthält, wird wegen des Fehlers nicht beendet. Die If-Compound-Liste ist auszuführen; Wenn der Ausgangsstatus Null ist, wird die dann zusammengesetzte Liste ausgeführt und der Befehl wird abgeschlossen. Andernfalls wird jede Elif-Compound-Liste nacheinander ausgeführt, und wenn ihr Ausgangsstatus Null ist, wird die dann zusammengesetzte Liste ausgeführt und der Befehl wird abgeschlossen. Andernfalls wird die andere Zusammengesetzte Liste ausgeführt. Wenn ein Signal empfangen wird, für das eine Trap gesetzt wurde, während die Shell auf den Abschluss eines Dienstprogramms wartet, das einen Vordergrundbefehl ausführt, wird die mit diesem Signal verbundene Trap erst ausgeführt, nachdem der Vordergrundbefehl abgeschlossen ist. Wartet die Shell über das Wartedienstprogramm auf den Abschluss asynchroner Befehle, so muss der Empfang eines Signals, für das eine Falle eingestellt wurde, dazu führen, dass das Wartedienstprogramm sofort mit dem Ausgangsstatus >128 zurückkehrt, unmittelbar nach dem die mit diesem Signal verbundene Falle zu nehmen ist.