Linux-kommandoer

BASH sags kommando

BASH sags kommando

Bash case-kommando bruges til at tage ordentlig handling ved at sammenligne data som if-sætning. Det fungerer som en switch-case-erklæring fra andre standardprogrammeringssprog. Denne kommando starter med 'case' -erklæring og lukkes med 'esac' -erklæring. Der bruges ikke nogen break-sætning i case-kommandoen, og dobbelt parentes (;;) er påkrævet for at nævne sætningen / erklæringerne til en bestemt matchning. Denne kommando udvider udtrykket og forsøger at matche med det givne mønster, og udgangsstatuskoden for denne kommando vil være nul, hvis der ikke findes nogen matchning. Nogle almindelige eksempler på sagserklæringer vises i denne vejledning.

Eksempel 1: enkel sagserklæring

Et enkelt betinget udtryk bruges i bash case-kommando til at generere output baseret på den matchende tilstand. Opret en bash-fil med navnet sag 1.sh med følgende bash-script. Scriptet tager en strengværdi og matcher værdien med hvert udtryk. Det følgende script genererer "Ingen post fundet", hvis der ikke findes et matchende udtryk,
sag 1.sh

#!/ bin / bash
ekko "Skriv dit navn"
læse navn
tilfælde $ navn i
Yesmin)
ekko "Din yndlingsfarve er blå" ;;
Fahmida)
ekko "Din yndlingsdrink er Sprite" ;;
*)
ekko "Ingen adgang fundet" ;;
esac

Kør scriptet.

$ bash sag1.sh

Produktion:

Filen udføres med et gyldigt og ugyldigt input her for at teste output.

Eksempel 2: flere sagserklæringer med rør

Flere sagsudtryk kan anvendes i bash-scriptet til at udføre forskellige typer udsagn. Rør (|) -symbolet kan bruges til at tildele flere udtryk. Opret en bash-fil med navnet sag2.sh med følgende script. Efter kørsel af scriptet, hvis inputværdien matcher et hvilket som helst udtryk, udskrives den tilsvarende tekstværdi.
sag2.sh

#!/ bin / bash
ekko "Indtast dit ID-nummer"
læse ID
sag $ ID i
65341)
ekko "Din position er 1." ;;
97564 | 88453)
ekko "Din position er 2." ;;
45087)
ekko "Din position er 3." ;;
*)
ekko "Ugyldigt ID" ;;
esac

Kør scriptet .

$ bash sag2.sh

Produktion:

Dette script fungerer også som det foregående eksempel. Den eneste forskel er, at de flere ekspressionsværdier testes for en enkelt output.

Eksempel 3: Sådan afslutter du fra sag / esac-sætningsblok

Når bash case-kommandoen bruges under en uendelig sløjfe, skal exit-kommandoen bruges til at afslutte sløjfen. Dette eksempel viser, hvordan disse typer opgaver kan udføres. Opret en tekstfil med navnet sag3.sh med følgende script. Dette script tager ethvert tal fra 1 til 3 som input. Hvis input er 1, tilføjes to tal, hvis input er 2, så trækkes to tal, og hvis inputnummeret er 3, multipliceres to tal. Outputtet vil være "Ugyldig indtastning", hvis inputnummeret er mere end 3 eller mindre end 1 eller tomt.
sag3.sh

#!/ bin / bash
#!/ bin / bash
mens (sandt)
gør
a = 8
b = 4
((x = $ a + $ b))
((y = $ a- $ b))
((z = $ a * $ b))
ekko "Type 1 eller 2 eller 3"
læse ans
sag $ ans ind
1) ekko "Summen af ​​$ a og $ b er $ x & exit" ;;
2) ekko "Subtraktionen af ​​$ a og $ b er $ y & exit" ;;
3) ekko "Multiplikationen af ​​$ a og $ b er $ z & exit" ;;
*) ekko "Ugyldig post"
esac
Færdig

Kør scriptet.

$ bash sag3.sh

Produktion:

Scriptet fortsætter med at udføre, indtil der trykkes på ctrl + c.

Eksempel 4: Kontrol af tom kommandolinjeargumentværdi

Kommandolinjeargumentvariablen kan bruges i bash-sagserklæringen. Opret en fil med navnet sag 4.sh med følgende script, der kontrollerer værdien af ​​den anden argumentvariabel.

#!/ bin / bash
tilfælde "$ 2" i
"Ubuntu")
ekko "Det andet argument er $ 2."
;;
"CentOS")
ekko "Det andet argument er $ 2."
;;
"")
ekko "Det andet argument er tomt."
;;
esac

Kør scriptet.

$ bash sag4.sh

Produktion:

Her udføres scriptet uden nogen anden kommandolinjeargumentværdi for første gang, og output viser "Det andet argument er tomt". Når scriptet udføres med en anden kommandolinjeargumentværdi for anden gang, vises der ingen output.

Eksempel 5: flere sagserklæringer baseret på brugerinput

Opret en bash-fil med navnet sag 5.sh med følgende script. Scriptet tager månedens navn som brugerinput. Hvis månedsnavnet matcher en hvilken som helst sagsværdi, tildeles en bestemt tekstbesked til variablen Besked. Indtastningsværdien skal være det fulde månedsnavn eller tre tegn månedens navn.

sag 5.sh

#!/ bin / bash
ekko "Indtast navnet på en måned"
læse måned
sag $ måned i
Januar | jan *)
Message = "21. februar er vores internationale mors dag."
;;
Februar | Feb *)
Message = "21. februar er vores internationale mors dag."
;;
Marts | Mar *)
Message = "9. marts er verdens nyredag."
;;
April | Apr *)
Message = "Den aktuelle måned er ikke februar"
;;
Maj | Maj *)
Besked = "Den aktuelle måned er februar"
;;
Juni | juni *)
Besked = "Den aktuelle måned er februar"
;;
*)
Message = "Ingen matchende oplysninger fundet"
;;
esac
ekko $ Besked

Kør scriptet.

$ bash sag5.sh

Produktion:

Følgende output vises for inputværdien 'Marts' eller 'Mar'.

Eksempel 6: Kontroller variabel i bash-sagserklæringen

Enhver strengværdi kan udskrives ved at kontrollere værdien af ​​kommandolinjens argumentvariabel. Opret en tekstfil med navnet sag 6.sh med følgende script. I dette eksempel kontrolleres værdien af ​​den første argumentvariabel, og hvis værdien er tom, udskrives en streng, "Jeg kan godt lide bash-programmering".

sag 6.sh

#!/ bin / bash
sag $ 1 in
("") ekko "Jeg kan godt lide bash programmering";
esac

Kør scriptet.

$ bash sag6.sh

Produktion:

Dette script udføres med og uden første argumenter. Der vil ikke være nogen output, hvis ingen kommandolinjeargumentvariabler passerer.

Konklusion

Forskellige anvendelser af bash case-kommando vises i denne artikel. Hvis læserne praktiserer disse eksempler ordentligt, vil det være lettere for dem at løse mange bash-programmeringsproblemer.

Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...
Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...
Nyttige værktøjer til Linux-spillere
Hvis du kan lide at spille spil på Linux, er chancerne for, at du måske har brugt apps og hjælpeprogrammer som Wine, Lutris og OBS Studio for at forbe...