logo

Caso Bash

Neste tópico, discutiremos os fundamentos das instruções case e como usá-las em scripts Bash.

A instrução Bash case é a forma mais simples de IF-THEN-ELSE com muitos elementos ELIF. Usar a instrução case torna nosso script bash mais legível e mais fácil de manter. Geralmente são aplicados para simplificar condições complexas com múltiplas opções diferentes.

A instrução Bash case segue uma lógica semelhante à instrução Javascript ou C switch. Há uma pequena diferença, como segue:

  • A instrução Bash case recebe um valor uma vez e testa esse valor várias vezes. Ele para de procurar um padrão depois de encontrá-lo e executar a instrução vinculada a ele, o que é quase oposto no caso da instrução switch C.

Sintaxe de declaração de caso

A sintaxe da instrução bash case é fornecida abaixo:

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

Existem alguns pontos-chave nas declarações de caso bash:

  • Cada instrução case no bash começa com a palavra-chave 'case', seguida pela expressão case e pela palavra-chave 'in'. A instrução case é fechada pela palavra-chave 'esac'.
  • Podemos aplicar vários padrões separados por | operador. O operador ) indica o término de uma lista de padrões.
  • Um padrão contendo as instruções é chamado de cláusula e deve ser finalizado com ponto e vírgula duplo (;;).
  • Um símbolo de asterisco (*) é usado como padrão final para definir o caso padrão. É usado como caso padrão quando usado como último caso.

Como funciona

Primeiro de tudo, a instrução case expande a expressão e tenta fazer a correspondência com cada um dos padrões incluídos. Quando encontra uma correspondência, todas as instruções vinculadas são executadas até o ponto e vírgula duplo (;;). Após a primeira correspondência, case termina com o status de saída da última instrução executada.

Se não houver nenhum padrão correspondente, o status de saída do caso será zero. Caso contrário, o status de retorno será o status de saída das instruções executadas.

Se o padrão de asterisco padrão for usado, ele será executado caso não haja padrão correspondente.

Vamos tentar entender esse mecanismo com a ajuda de alguns exemplos:

Exemplo 1

Neste exemplo, definimos um cenário simples para demonstrar o uso da instrução case.

Script Bash

 #!/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 

Saída

Caso Bash

Exemplo 2

Neste exemplo, definimos um cenário combinado onde também existe um caso padrão quando nenhum caso correspondente anterior é encontrado.

formato de string java longo

Script Bash

 #!/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 

Saída

Executamos o script com três entradas diferentes, confira a saída abaixo:

Caso Bash

Conclusão

Neste tópico, aprendemos sobre a sintaxe e o uso da instrução Bash Case com os exemplos.