switch(1)
On Januar 9, 2022 by adminName
switch – einen Block von Befehlen bedingt ausführen
Synopsis
switch VALUE; ; ; …] end
Beschreibung
Die switch-Anweisung wird verwendet, um einen von mehreren Blöcken von Befehlen auszuführen, je nachdem, ob ein angegebener Wert gleich einem von mehreren Platzhalterwerten ist. Die case-Anweisung wird zusammen mit der switch-Anweisung verwendet, um zu bestimmen, welcher Block ausgeführt werden soll.
Jeder case-Befehl erhält einen oder mehrere Parameter. Der erste case-Befehl mit einem Parameter, der mit der im switch-Befehl angegebenen Zeichenfolge übereinstimmt, wird ausgewertet. case-Parameter können Wildcards enthalten. Diese müssen in Anführungszeichen gesetzt werden, um eine reguläre Platzhalterexpansion zu vermeiden, die Dateinamen verwendet.
Beachten Sie, dass fish nicht auf case-Anweisungen zurückgreift. Obwohl die Syntax ein wenig wie C-Switch-Anweisungen aussieht, verhält sie sich eher wie die Case-Anweisungen traditioneller Shells.
Auch ist zu beachten, dass Befehlssubstitutionen in einer Case-Anweisung ausgewertet werden, auch wenn ihr Körper nicht übernommen wird. Dies mag auf den ersten Blick kontraintuitiv erscheinen, ist aber unvermeidlich, da es unmöglich wäre, zu wissen, ob ein case-Befehl zu true ausgewertet wird, bevor alle Formen der Parametererweiterung für den case-Befehl durchgeführt wurden.
Beispiel
Wenn die Variable $animal den Namen eines Tieres enthält, würde der folgende Code versuchen, es zu klassifizieren:
switch $animal case cat echo evil case wolf dog human moose dolphin whale echo mammal case duck goose albatross echo bird case shark trout stingray echo fish case '*' echo I have no idea what a $animal isend
Wenn der obige Code mit $animal auf whale gesetzt würde, wäre die Ausgabe mammal.
Schreibe einen Kommentar