Bash Case Command brukes til å ta riktig tiltak ved å sammenligne data som om uttalelse. Det fungerer som en switch-case-uttalelse av andre standardprogrammeringsspråk. Denne kommandoen starter med "sak" -uttalelse og lukkes med "ESAC" -erklæring. Det brukes ingen bruddserklæring i sakskommandoen og dobbelt brakett (;;) er pålagt å nevne uttalelsen (e) for en bestemt samsvar. Denne kommandoen utvider uttrykket og prøver å samsvare med det gitte mønsteret, og avkjøringsstatuskoden til denne kommandoen vil være null hvis ingen matching vil bli funnet. Noen vanlige eksempler på saksuttalelser vises i denne opplæringen.
Eksempel 1: Enkel saksuttalelse
Et enkelt betinget uttrykk brukes i bash -kommando for å generere utgangen basert på samsvarende tilstand. Lag en bash -fil som heter CASE1.sh med følgende bashskript. Skriptet vil ta en strengverdi og samsvare med verdien med hvert uttrykk. Følgende skript vil generere "ingen oppføring funnet" hvis det ikke eksisterer noe matchende uttrykk,
CASE1.sh
#!/bin/bash
ekko "Skriv navnet ditt"
Les navn
sak $ navn inn
Yesmin)
ekko "favorittfargen din er blå" ;;
Fahmida)
ekko "favorittdrikken din er sprite" ;;
*)
ekko "ingen oppføring funnet" ;;
Esac
Kjør manuset.
$ bash case1.sh
Produksjon:
Filen utføres med gyldig og ugyldig inngang her for å teste utdataene.
Eksempel-2: Flere sakserklæring med rør
Flere tilfeller kan brukes i bash -skriptet for å utføre forskjellige typer uttalelser. Rør (|) symbol kan brukes til å tilordne flere uttrykk. Lag en bash -fil som heter CASE2.sh med følgende skript. Etter å ha kjørt skriptet, hvis inngangsverdien stemmer overens med noe uttrykk, vil den tilsvarende tekstverdien skrives ut.
CASE2.sh
#!/bin/bash
ekko "Skriv inn ID -nummeret ditt"
Les ID
sak $ id i
65341)
ekko "Din posisjon er 1." ;;
97564 | 88453)
ekko "Din stilling er 2." ;;
45087)
ekko "Din stilling er 3." ;;
*)
ekko "Ugyldig ID" ;;
Esac
Kjør manuset .
$ bash case2.sh
Produksjon:
Dette skriptet fungerer også som forrige eksempel. Den eneste forskjellen er at de flere ekspresjonsverdiene blir testet for en enkelt utgang.
Eksempel-3: Hvordan slutte fra saken/ESAC-uttalelsesblokk
Når kommandoen Bash Case brukes under en uendelig sløyfe, kreves utgangskommandoen for å bruke for å avslutte sløyfen. Dette eksemplet viser hvordan disse typene av oppgaven kan gjøres. Lag en tekstfil som heter CASE3.sh med følgende skript. Dette skriptet vil ta et hvilket som helst tall fra 1 til 3 som inngang. Hvis inngangen er 1, vil to tall bli lagt til, hvis inngangen er 2, vil to tall bli trukket fra og hvis inngangsnummeret er 3, vil to tall bli multiplisert. Utgangen vil være "ugyldig oppføring" hvis inngangsnummeret er mer enn 3 eller mindre enn 1 eller tom.
CASE3.sh
#!/bin/bash
#!/bin/bash
mens (sant)
gjøre
a = 8
B = 4
((x = $ a+$ b))
((y = $ a- $ b))
((z = $ a*$ b))
ekko "Type 1 eller 2 eller 3"
Les Ans
sak $ og i
1) ekko "summen av $ a og $ b er $ x & exit" ;;
2) ekko "Subtraksjonen til $ A og $ B er $ y & exit" ;;
3) ekko "Multiplikasjonen av $ A og $ B er $ z & exit" ;;
*) ekko "Ugyldig oppføring"
Esac
Ferdig
Kjør manuset.
$ bash case3.sh
Produksjon:
Skriptet vil fortsette å utføre til Ctrl+C blir trykket.
Eksempel-4: Kontroller tom kommandolinje argumentverdi
Kommandolinje Argumentvariabel kan brukes i Bash -saksuttalelsen. Lag en fil som heter CASE4.sh med følgende skript som vil sjekke verdien av den andre argumentvariabelen.
#!/bin/bash
sak "$ 2" i
"Ubuntu")
ekko "Det andre argumentet er $ 2.""
;;
"Centos")
ekko "Det andre argumentet er $ 2.""
;;
"")
ekko "Det andre argumentet er tomt.""
;;
Esac
Kjør manuset.
$ bash case4.sh
Produksjon:
Her utføres skriptet uten noen andre kommandolinje argumentverdi for første gang, og utgangen viser “Det andre argumentet er tomt”. Når skriptet blir utført med en andre kommandolinje argumentverdi for andre gang, vises ingen utgang.
Eksempel-5: Flere case-uttalelser basert på brukerinngang
Lag en bash -fil som heter CASE5.sh med følgende skript. Skriptet vil ta månedens navn som brukerinngang. Hvis månedens navn samsvarer med noen saksverdi, vil en bestemt tekstmelding bli tildelt i variabelmeldingen. Inngangsverdi må være hele månedens navn eller tre tegnmånedens navn.
CASE5.sh
#!/bin/bash
ekko "Skriv inn navnet på en måned"
Les måned
sak $ måned inn
Januar | Jan*)
Melding = "21. februar er vår internasjonale morsdag.""
;;
Februar | februar*)
Melding = "21. februar er vår internasjonale morsdag.""
;;
Mars | Mar*)
Melding = "9. mars er verdens nyredag.""
;;
April | april*)
Melding = "Den nåværende måneden er ikke februar"
;;
Mai | mai*)
Melding = "Den nåværende måneden er februar"
;;
Juni | juni*)
Melding = "Den nåværende måneden er februar"
;;
*)
Melding = "Ingen matchende informasjon funnet"
;;
Esac
ekko $ melding
Kjør manuset.
$ bash case5.sh
Produksjon:
Følgende utgang vises for inngangsverdien, 'March' eller 'Mar'.
Eksempel-6: Sjekk variabel i Bash-saken uttalelse
Enhver strengverdi kan skrives ut ved å sjekke verdien av kommandolinjeargumentet variabel. Lag en tekstfil som heter sak6.sh med følgende skript. I dette eksemplet blir verdien av den første argumentvariabelen sjekket, og hvis verdien er tom, vil en streng, "Jeg liker bash -programmering" bli skrevet ut.
sak6.sh
#!/bin/bash
sak $ 1 i
("") Echo "Jeg liker bash -programmering";
Esac
Kjør manuset.
$ Bash Case6.sh
Produksjon:
Dette skriptet blir utført med og uten første argumenter. Det vil ikke komme noen output hvis ingen kommandolinjeargumentvariabler passerer.
Ulike bruksområder av bash -kommando vises i denne artikkelen. Hvis leserne praktiserer disse eksemplene ordentlig, vil det være lettere for dem å løse mange bash -programmeringsproblemer.