I det här ämnet kommer vi att diskutera grunderna i fallbeskrivningar och hur man använder dem i Bash-skript.
Bash-fallsförklaringen är den enklaste formen av OM-DÅ-ANSÄT med många ELIF-element. Att använda case statement gör vårt bash-skript mer läsbart och lättare att underhålla. Dessa används i allmänhet för att förenkla de komplexa förhållandena med flera olika val.
Bash-fallsatsen följer en liknande logik som Javascript- eller C-switch-satsen. Det finns en liten skillnad, enligt följande:
- Bash-fallsatsen tar ett värde en gång och testar det värdet flera gånger. Den slutar söka efter ett mönster när den har hittat det och kört den sats som är kopplad till den, vilket är nästan motsatt i fallet med C switch-satsen.
Fallbeskrivningssyntax
Syntaxen för bash case-satsen ges nedan:
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Det finns några viktiga punkter i uttalanden om bashfall:
- Varje falluttryck i bash börjar med nyckelordet 'case', följt av case-uttrycket och nyckelordet 'in'. Fallförklaringen avslutas med nyckelordet 'esac'.
- Vi kan tillämpa flera mönster separerade med | operatör. Operatorn ) indikerar avslutandet av en mönsterlista.
- Ett mönster som innehåller påståendena kallas för en sats, och det måste avslutas med dubbelt semikolon (;;).
- En asterisksymbol (*) används som ett sista mönster för att definiera standardfallet. Det används som ett standardfall när det används som det sista fallet.
Hur det fungerar
Först och främst utökar case statement uttrycket och försöker matcha med vart och ett av de inkluderade mönstren. När den hittar en matchning exekveras alla länkade satser till det dubbla semikolonet (;;). Efter den första matchningen avslutas ärendet med exitstatus för den senast körda satsen.
Om det inte finns något matchat mönster är utgångsstatusen för ärendet noll. I annat fall är returstatus exitstatusen för de körda satserna.
Om det förinställda asteriskmönstret används kommer det att köras om det inte finns något matchat mönster.
Låt oss försöka förstå denna mekanism med hjälp av några exempel:
Exempel 1
I det här exemplet har vi definierat ett enkelt scenario för att demonstrera användningen av fallförklaringen.
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
Produktion
Exempel 2
I det här exemplet har vi definierat ett kombinerat scenario där det också finns ett standardfall när inget tidigare matchat fall hittas.
tecken till int 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
Produktion
Vi har kört skriptet med tre olika ingångar, kolla in utgången nedan: