switch(1)
On januari 9, 2022 by adminName
switch – voorwaardelijk uitvoeren van een blok opdrachten
Synopsis
switch VALUE; ; ; …] end
Description
De switch-instructie wordt gebruikt om een van verschillende blokken opdrachten uit te voeren, afhankelijk van de vraag of een opgegeven waarde gelijk is aan een van een aantal jokertekens. De case-instructie wordt samen met de switch-instructie gebruikt om te bepalen welk blok moet worden uitgevoerd.
Elke case-opdracht krijgt een of meer parameters. De eerste case opdracht met een parameter die overeenkomt met de string die in de switchopdracht is opgegeven, wordt geëvalueerd. case parameters kunnen jokertekens bevatten. Deze moeten worden ge-escaped of geciteerd om te voorkomen dat reguliere wildcard-expansies bestandsnamen gebruiken.
Merk op dat fish niet doorvalt op case statements. Hoewel de syntax een beetje lijkt op C switch statements, gedraagt het zich meer als de case statements van traditionele shells.
Ook wordt opgemerkt dat commando substituties in een case statement worden geëvalueerd, zelfs als de body niet wordt meegenomen. Dit lijkt op het eerste gezicht contra-intuïtief, maar het is onvermijdelijk, omdat het onmogelijk zou zijn om te weten of een case-commando op waar zal evalueren voordat alle vormen van parameteruitbreiding voor het case-commando zijn uitgevoerd.
Voorbeeld
Als de variabele $animal de naam van een dier bevat, zou de volgende code proberen het te classificeren:
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
Als de bovenstaande code werd uitgevoerd met $animal ingesteld op walvis, zou de uitvoer zoogdier zijn.
Geef een antwoord