switch(1)
On 9 tammikuun, 2022 by adminNimi
switch – suorittaa ehdollisesti komentolohkon
Synopsis
switch VALUE; ; ; ; …] end
Kuvaus
Switch-lauseketta käytetään suorittamaan yksi useista komentolohkoista riippuen siitä, onko määritetty arvo yhtä useista jokeriarvoista. Case-lauseketta käytetään yhdessä switch-lausekkeen kanssa sen määrittämiseksi, mikä lohko on suoritettava.
Jokaiseen case-komentoon annetaan yksi tai useampi parametri. Ensimmäinen case-komento, jonka parametri vastaa switchkomennossa määritettyä merkkijonoa, arvioidaan. case-parametrit voivat sisältää jokerimerkkejä. Nämä on suojattava tai lainattava, jotta vältetään säännöllinen jokerimerkkien laajentaminen käyttämällä tiedostonimiä.
Huomaa, että fish ei kaadu case-käskyihin. Vaikka syntaksi saattaa näyttää hieman C:n switch-lausekkeilta, se käyttäytyy enemmän kuin perinteisten komentokuorien case-lausekkeet.
Huomaa myös, että case-lausekkeen sisältämät komennonkorvaukset arvioidaan, vaikka lausekkeen runkoa ei otettaisikaan. Tämä saattaa aluksi vaikuttaa vastenmieliseltä, mutta se on väistämätöntä, koska olisi mahdotonta tietää, evaluoituuko case-komento totuudeksi true, ennen kuin case-komennon kaikki parametrien laajennusmuodot on suoritettu.
Esimerkki
Jos muuttuja $animal sisältää eläimen nimen, seuraava koodi yrittäisi luokitella eläimen:
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
Jos yllä oleva koodi ajettaisiin siten, että muuttujan $animal arvoksi olisi asetettu whale, tulosteeksi tulisi mammal.
Vastaa