I dette emnet vil vi diskutere det grunnleggende om saksuttalelser og hvordan du bruker dem i Bash-skript.
Bash-tilfellet er den enkleste formen for IF-THEN-ELSE med mange ELIF-elementer. Bruk av case-uttalelsen gjør bash-skriptet vårt mer lesbart og enklere å vedlikeholde. Disse brukes vanligvis for å forenkle de komplekse forholdene med flere forskjellige valg.
Bash-tilfellesetningen følger en lignende logikk som Javascript- eller C-switch-setningen. Det er en liten forskjell, som følger:
- Bash-tilfellet tar en verdi én gang og tester den verdien flere ganger. Den slutter å søke etter et mønster når den har funnet det og utført setningen knyttet til den, noe som er nesten motsatt i tilfelle C-switch-setningen.
Saksuttalelse syntaks
Syntaks for bash-casesetningen er gitt nedenfor:
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Det er noen nøkkelpunkter i bash-tilfelleutsagn:
- Hver kasussetning i bash starter med nøkkelordet 'case', etterfulgt av kasusuttrykket og 'in' nøkkelordet. Saksuttalelsen avsluttes med nøkkelordet 'esac'.
- Vi kan bruke flere mønstre atskilt med | operatør. Operatoren ) indikerer avslutningen av en mønsterliste.
- Et mønster som inneholder setningene omtales som en klausul, og det må avsluttes med dobbelt semikolon (;;).
- Et stjernesymbol (*) brukes som et siste mønster for å definere standard store og små bokstaver. Det brukes som standard tilfelle når det brukes som siste tilfelle.
Hvordan det fungerer
Først av alt, utvider kasussetningen uttrykket og prøver å matche med hvert av de inkluderte mønstrene. Når den finner et samsvar, utføres alle de koblede setningene til det doble semikolonet (;;). Etter den første matchen avsluttes saken med avslutningsstatusen til den sist utførte setningen.
Hvis det ikke er noe samsvarende mønster, er utgangsstatusen til saken null. Ellers er returstatus exitstatusen til de utførte setningene.
Hvis standard stjernemønsteret brukes, vil det bli utført i tilfelle det ikke samsvarer med mønsteret.
La oss prøve å forstå denne mekanismen ved hjelp av noen få eksempler:
Eksempel 1
I dette eksemplet har vi definert et enkelt scenario for å demonstrere bruken av saksuttalelsen.
Bash Script
#!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac
Produksjon
Eksempel 2
I dette eksemplet har vi definert et kombinert scenario der det også er et standardtilfelle når ingen tidligere samsvarende sak er funnet.
primtall java
Bash Script
#!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac
Produksjon
Vi har kjørt skriptet med tre forskjellige innganger, sjekk utdataene nedenfor: