Linux-kommandon

BASH Fallkommando

BASH Fallkommando

Kommandot Bash case används för att vidta lämpliga åtgärder genom att jämföra data som om uttalande. Det fungerar som ett switch-case-uttalande för andra vanliga programmeringsspråk. Detta kommando börjar med 'case' uttalande och avslutas med 'esac' uttalande. Inget brytuttalande används i fallkommandot och dubbel parentes (;;) krävs för att nämna uttalandena för någon speciell matchning. Detta kommando expanderar uttrycket och försöker matcha med det givna mönstret och utgångsstatuskoden för detta kommando kommer att vara noll om ingen matchning kommer att hittas. Några vanliga exempel på falluttalanden visas i denna handledning.

Exempel 1: enkelt falluttalande

Ett enda villkorligt uttryck används i bash case-kommando för att generera utdata baserat på matchande tillstånd. Skapa en bash-fil med namnet fall 1.sh med följande bash-skript. Skriptet tar ett strängvärde och matchar värdet med varje uttryck. Följande skript genererar "Ingen post hittades" om inget matchande uttryck finns,
fall 1.sh

#!/ bin / bash
eko "Skriv ditt namn"
läs namn
fall $ namn i
Yesmin)
eko "Din favoritfärg är blå" ;;
Fahmida)
eko "Din favoritdryck är Sprite" ;;
*)
eko "No Entry Found" ;;
esac

Kör manuset.

$ bash fall1.sh

Produktion:

Filen körs med en giltig och ogiltig inmatning här för att testa utdata.

Exempel 2: flera fall uttalande med rör

Flera falluttryck kan användas i bash-skriptet för att utföra olika typer av uttalanden. Rörsymbolen (|) kan användas för att tilldela flera uttryck. Skapa en bash-fil med namnet fall2.sh med följande skript. Om man har kört skriptet, om ingångsvärdet matchar något uttryck, kommer motsvarande textvärde att skrivas ut.
fall2.sh

#!/ bin / bash
eko "Skriv ditt ID-nummer"
läs ID
fall $ ID i
65341)
eko "Din position är 1: a" ;;
97564 | 88453)
eko "Din position är 2: a" ;;
45087)
eko "Din position är 3: e" ;;
*)
eko "Ogiltigt ID" ;;
esac

Kör manuset .

$ bash fall2.sh

Produktion:

Det här skriptet fungerar också som i föregående exempel. Den enda skillnaden är att de flera uttrycksvärdena testas för en enda utgång.

Exempel 3: Hur man avslutar från case / esac uttalande block

När bash-kommandot används under en oändlig slinga krävs exit-kommandot för att avsluta slingan. Det här exemplet visar hur dessa typer av uppdrag kan göras. Skapa en textfil med namnet fall3.sh med följande skript. Detta skript tar ett valfritt tal från 1 till 3 som inmatning. Om ingången är 1 kommer två siffror att läggas till, om ingången är 2 kommer två nummer att subtraheras och om ingångsnumret är 3 multipliceras två siffror. Utgången blir ”Ogiltig inmatning” om inmatningsnumret är mer än 3 eller mindre än 1 eller tomt.
fall3.sh

#!/ bin / bash
#!/ bin / bash
medan (sant)
do
a = 8
b = 4
((x = $ a + $ b))
((y = $ a- $ b))
((z = $ a * $ b))
eko "Typ 1 eller 2 eller 3"
läs ans
fall $ ans in
1) eko "Summan av $ a och $ b är $ x & exit" ;;
2) eko "Subtraktion av $ a och $ b är $ y & exit" ;;
3) eko "Multiplikationen av $ a och $ b är $ z & exit" ;;
*) eko "Ogiltig post"
esac
Gjort

Kör manuset.

$ bash fall3.sh

Produktion:

Skriptet fortsätter att köras tills ctrl + c kommer att tryckas.

Exempel 4: Kontrollerar tomt värde för kommandoradsargument

Kommandoradsargumentvariabel kan användas i bash-uttalandet. Skapa en fil med namnet fall4.sh med följande skript som kontrollerar värdet på den andra argumentvariabeln.

#!/ bin / bash
fall "$ 2" i
"Ubuntu")
echo "Det andra argumentet är $ 2."
;;
"CentOS")
echo "Det andra argumentet är $ 2."
;;
"")
echo "Det andra argumentet är tomt."
;;
esac

Kör manuset.

$ bash fall4.sh

Produktion:

Här körs skriptet utan något andra kommandoradsargumentvärde för första gången och utgången visar "Det andra argumentet är tomt". När skriptet körs med ett andra kommandoradsargumentvärde för andra gången visas ingen utdata.

Exempel 5: uttalande med flera fall baserat på användarinmatning

Skapa en bash-fil med namnet fall5.sh med följande skript. Skriptet tar månadens namn som användarinmatning. Om månadsnamnet matchar något fallvärde tilldelas ett visst textmeddelande till variabeln Meddelande. Inmatningsvärdet måste vara hela månadens namn eller tre tecken månadens namn.

fall5.sh

#!/ bin / bash
eko "Skriv in namnet på en månad"
läs månad
fall $ månad in
Januari | jan *)
Message = "21 februari är vår internationella mors dag."
;;
Februari | feb *)
Message = "21 februari är vår internationella mors dag."
;;
Mars | mars *)
Meddelande = "9 mars är världens njursdag."
;;
April | apr *)
Meddelande = "Den aktuella månaden är inte februari"
;;
Maj | Maj *)
Message = "Den aktuella månaden är februari"
;;
Juni | juni *)
Message = "Den aktuella månaden är februari"
;;
*)
Message = "Ingen matchande information hittades"
;;
esac
echo $ meddelande

Kör manuset.

$ bash fall5.sh

Produktion:

Följande utdata visas för inmatningsvärdet "Mars" eller "Mar".

Exempel 6: Kontrollera variabeln i bash-uttalandet

Vilket strängvärde som helst kan skrivas ut genom att kontrollera värdet på kommandoradsargumentvariabeln. Skapa en textfil med namnet fall 6.sh med följande skript. I det här exemplet kontrolleras värdet på den första argumentvariabeln och om värdet är tomt kommer en sträng, "Jag gillar bash-programmering" att skrivas ut.

fall 6.sh

#!/ bin / bash
fall $ 1 in
("") echo "Jag gillar bash-programmering";
esac

Kör manuset.

$ bash-fall 6.sh

Produktion:

Detta skript körs med och utan första argument. Det kommer ingen utdata om ingen kommandoradsargumentvariabel passerar.

Slutsats

Olika användningar av bash-kommandot visas i den här artikeln. Om läsarna övar dessa exempel ordentligt blir det lättare för dem att lösa många bash-programmeringsproblem.

OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...