Linux-kommandoer

BASH Sakskommando

BASH Sakskommando

Bash case-kommando brukes til å iverksette tiltak ved å sammenligne data som if-setning. Det fungerer som en switch-case uttalelse av andre standard programmeringsspråk. Denne kommandoen starter med 'case' uttalelse og lukkes med 'esac' uttalelse. Ingen pauseuttalelse brukes i sakskommandoen, og det er nødvendig med dobbel brakett (;;) for å nevne uttalelsen (e) for noen spesiell samsvar. Denne kommandoen utvider uttrykket og prøver å matche med det gitte mønsteret, og utgangsstatuskoden for denne kommandoen vil være null hvis ingen samsvar blir funnet. Noen vanlige eksempler på saksuttalelser er vist i denne veiledningen.

Eksempel 1: enkel saksuttalelse

Et enkelt betinget uttrykk brukes i bash case-kommando for å generere utdata basert på samsvarende tilstand. Opprett en bash-fil med navnet sak1.sh med følgende bash-skript. Skriptet tar en strengverdi og samsvarer verdien med hvert uttrykk. Følgende skript genererer "Ingen oppføring funnet" hvis det ikke finnes noe samsvarende uttrykk,
sak1.sh

#!/ bin / bash
ekko "Skriv inn navnet ditt"
lese navnet
tilfelle $ navn i
Yesmin)
ekko "Din favorittfarge er blå" ;;
Fahmida)
ekko "Din favorittdrink er Sprite" ;;
*)
ekko "Ingen oppføring funnet" ;;
esac

Kjør skriptet.

$ bash sak1.sh

Produksjon:

Filen kjøres med en gyldig og ugyldig inndata her for å teste utdataene.

Eksempel 2: flere uttalelser med rør

Flere saksuttrykk kan brukes i bash-skriptet for å utføre forskjellige typer utsagn. Pipe (|) -symbolet kan brukes til å tilordne flere uttrykk. Opprett en bash-fil med navnet sak2.sh med følgende manus. Etter at man har kjørt skriptet, hvis inngangsverdien samsvarer med et hvilket som helst uttrykk, vil den tilsvarende tekstverdien skrives ut.
sak2.sh

#!/ bin / bash
ekko "Skriv inn ID-nummeret ditt"
les ID
tilfelle $ ID i
65341)
ekko "Din posisjon er første" ;;
97564 | 88453)
ekko "Din posisjon er 2." ;;
45087)
ekko "Din posisjon er tredje" ;;
*)
ekko "Ugyldig ID" ;;
esac

Kjør skriptet .

$ bash sak2.sh

Produksjon:

Dette skriptet fungerer også som forrige eksempel. Den eneste forskjellen er at verdiene for flere uttrykk testes for en enkelt utgang.

Eksempel 3: Slik avslutter du fra case / esac-uttalelsesblokk

Når bash case-kommandoen brukes under en uendelig sløyfe, må exit-kommandoen brukes for å avslutte sløyfen. Dette eksemplet viser hvordan disse typer oppgavene kan gjøres. Lag en tekstfil med navnet sak3.sh med følgende manus. Dette skriptet tar et hvilket som helst tall fra 1 til 3 som input. Hvis inngangen er 1, vil to tall legges til, hvis inngangen er 2, vil to tall bli trukket, og hvis inngangstallet 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 tomt.
sak3.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 $ ans i
1) ekko "Summen av $ a og $ b er $ x & exit" ;;
2) ekko "Subtraksjonen av $ a og $ b er $ y & exit" ;;
3) ekko "Multiplikasjonen av $ a og $ b er $ z & exit" ;;
*) ekko "Ugyldig oppføring"
esac
ferdig

Kjør skriptet.

$ bash sak3.sh

Produksjon:

Skriptet vil fortsette å kjøre til ctrl + c blir trykket.

Eksempel 4: Kontrollerer tom kommandolinjeargumentverdi

Kommandolinjeargumentvariabelen kan brukes i bash-saksuttalelsen. Opprett en fil med navnet sak4.sh med følgende skript som vil sjekke verdien til den andre argumentvariabelen.

#!/ bin / bash
tilfelle "$ 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 skriptet.

$ bash sak4.sh

Produksjon:

Her kjøres skriptet uten noen andre kommandolinjeargumentverdi for første gang, og utgangen viser "Det andre argumentet er tomt". Når skriptet kjøres med en annen kommandolinjeargumentverdi for andre gang, vises ingen utdata.

Eksempel 5: flere saksuttalelser basert på brukerinngang

Opprett en bash-fil med navnet sak5.sh med følgende manus. Skriptet tar månedens navn som brukerinngang. Hvis månedsnavnet samsvarer med en hvilken som helst saksverdi, tilordnes en bestemt tekstmelding til variabelen Melding. Inngangsverdien må være hele månedsnavnet eller tre tegn månedens navn.

sak5.sh

#!/ bin / bash
ekko "Skriv inn navnet på en måned"
lese måned
sak $ måned i
Januar | januar *)
Message = "21. februar er vår internasjonale morsdag."
;;
Februar | februar *)
Message = "21. februar er vår internasjonale morsdag."
;;
Mars | mars *)
Message = "9. mars er verdens nyredag."
;;
April | april *)
Message = "Den nåværende måneden er ikke februar"
;;
Mai | Mai *)
Message = "Den nåværende måneden er februar"
;;
Juni | juni *)
Message = "Den nåværende måneden er februar"
;;
*)
Message = "Fant ingen samsvarende informasjon"
;;
esac
ekko $ Melding

Kjør skriptet.

$ bash sak5.sh

Produksjon:

Følgende utdata vises for inngangsverdien 'Mars' eller 'Mar'.

Eksempel 6: Kontroller variabelen i bash-saksuttalelsen

Enhver strengverdi kan skrives ut ved å sjekke verdien på kommandolinjens argumentvariabel. Lag en tekstfil med navnet sak6.sh med følgende manus. I dette eksemplet blir verdien til 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
("") ekko "Jeg liker bash-programmering";
esac

Kjør skriptet.

$ bash sak6.sh

Produksjon:

Dette skriptet er utført med og uten første argumenter. Det blir ingen utdata hvis ingen kommandolinjeargumentvariabler passerer.

Konklusjon

Ulike bruksområder for bash case-kommando er vist i denne artikkelen. Hvis leserne praktiserer disse eksemplene riktig, vil det være lettere for dem å løse mange bash programmeringsproblemer.

Mus Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Bruk av mus eller tastatur i feil stilling for overdreven bruk kan føre til mange helseproblemer, inkludert belastning, karpaltunnelsyndrom og mer. I ...
Mus Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
De siste årene har datamaskiner og operativsystemer utviklet seg sterkt. Det var en tid da brukere måtte bruke kommandoer for å navigere gjennom filad...
Mus Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Dual Display Mouse Manager lar deg kontrollere og konfigurere musebevegelse mellom flere skjermer, ved å bremse bevegelsene nær grensen. Windows 10/8,...