logo

Cas Bash

En aquest tema, parlarem dels conceptes bàsics de les declaracions de cas i com utilitzar-les als scripts Bash.

La instrucció de cas Bash és la forma més senzilla de IF-THEN-ELSE amb molts elements ELIF. L'ús de la declaració case fa que el nostre script bash sigui més llegible i més fàcil de mantenir. Aquests s'apliquen generalment per simplificar les condicions complexes amb múltiples opcions diferents.

La instrucció Bash case segueix una lògica similar a la declaració de commutació Javascript o C. Hi ha una petita diferència, com segueix:

  • La instrucció Bash case pren un valor una vegada i prova aquest valor diverses vegades. Deixa de cercar un patró un cop l'ha trobat i ha executat la instrucció enllaçada amb ell, que és gairebé el contrari en el cas de la instrucció C switch.

Sintaxi de la declaració de cas

La sintaxi de la instrucció bash case es mostra a continuació:

 case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac 

Hi ha alguns punts clau de les declaracions de bash case:

  • Cada declaració de cas a bash comença amb la paraula clau 'case', seguida de l'expressió case i la paraula clau 'in'. La declaració del cas es tanca amb la paraula clau 'esac'.
  • Podem aplicar diversos patrons separats per | operador. L'operador ) indica la finalització d'una llista de patrons.
  • Un patró que conté les declaracions es coneix com a clàusula i s'ha d'acabar amb doble punt i coma (;;).
  • S'utilitza un símbol d'asterisc (*) com a patró final per definir el cas predeterminat. S'utilitza com a cas predeterminat quan s'utilitza com a darrer cas.

Com funciona

En primer lloc, la instrucció case expandeix l'expressió i intenta coincidir amb cadascun dels patrons inclosos. Quan troba una coincidència, totes les sentències enllaçades s'executen fins al punt i coma doble (;;). Després de la primera coincidència, el cas finalitza amb l'estat de sortida de l'última instrucció executada.

Si no hi ha cap patró coincident, l'estat de sortida del cas és zero. En cas contrari, l'estat de retorn és l'estat de sortida de les sentències executades.

Si s'utilitza el patró d'asterisc predeterminat, s'executarà en cas que no hi hagi cap patró coincident.

Intentem entendre aquest mecanisme amb l'ajuda d'uns quants exemples:

Exemple 1

En aquest exemple, hem definit un escenari senzill per demostrar l'ús de la declaració case.

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 

Sortida

Cas Bash

Exemple 2

En aquest exemple, hem definit un escenari combinat on també hi ha un cas predeterminat quan no es troba cap cas anterior coincident.

r en llenguatge c

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 

Sortida

Hem executat l'script amb tres entrades diferents, mireu la sortida següent:

Cas Bash

Conclusió

En aquest tema, hem après sobre la sintaxi i l'ús de la instrucció Bash Case amb els exemples.