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
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.shProduktion:
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
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.shProduktion:
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
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.shProduktion:
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 / bashfall "$ 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.shProduktion:
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 / basheko "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.shProduktion:
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 / bashfall $ 1 in
("") echo "Jag gillar bash-programmering";
esac
Kör manuset.
$ bash-fall 6.shProduktion:
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.