Matriz de correspondência na declaração de caso de bash

Matriz de correspondência na declaração de caso de bash

Na programação Bash, a declaração do caso ajuda a simplificar condicionais complexos quando houver várias opções diferentes. Em vez de usar declarações aninhadas, podemos usar a declaração do caso para tornar o código da basquete mais legível e sustentável.

A declaração de caso BASH compartilha semelhanças com JavaScript e C Switch Declaração. No entanto, a principal diferença é que, uma vez que corresponda a um padrão, ele não procura por nenhuma correspondência de padrão adicional.

Este guia abordará o básico da declaração de caso Bash com vários exemplos.

Declaração do caso Bash

A estrutura fundamental da declaração do caso é a seguinte.

caso em
)
declarações
;;
)
declarações
;;
*)
declarações
;;
ESAC

Aqui está um breve colapso da estrutura:

  • A declaração do caso começará com a palavra -chave "caso" e terminará com a palavra -chave "ESAC", semelhante a como se condicional começar com "se" e termina com "fi".
  • Pode haver vários padrões separados por "|". O operador ")" marca o fim da lista de padrões.
  • Os padrões podem conter caracteres especiais.
  • Uma vez que um padrão seja correspondido, seus comandos associados serão executados. Juntos, é chamado de cláusula. Cada cláusula deve terminar com “;;”. Interrompe qualquer tentativa de corresponder a mais padrões.
  • A cláusula curinga (*) é uma prática comum para definir o caso padrão. Sempre corresponderá à condição.
  • Se nenhum padrão corresponder, a declaração do caso retorna zero. Caso contrário, ele retornará o valor de saída dos comandos executados.

Ter um entendimento da declaração Bash if-Else é benéfico para entender e dominar a declaração do caso Bash.

Exemplos de declaração de caso de bash

Declaração de casos usando valores numéricos

Agora que sabemos o básico, hora de verificar em ação. Dê uma olhada no seguinte script.

#!/BIN/BASH
eco -n "Digite o valor:"
Leia o valor
Caso $ valor em
1)
eco "um" ;;
2)
eco "dois" ;;
3)
eco "três" ;;
4 | 5)
eco "maior que três" ;;
*)
eco "valor desconhecido" ;;
ESAC

Salve o script. Marque como executável.

$ chmod +x amostra.sh

Agora, execute o script.

$ ./amostra.sh

O script pedirá para inserir um valor. Se o valor corresponder a algum dos padrões, ele executará a cláusula de correspondência. Se nenhuma correspondência foi encontrada, ele corresponderá à cláusula padrão.

Declaração de casos usando strings

No próximo exemplo, usaremos strings para corresponder aos valores.

#!/BIN/BASH
eco -n "Entre no planeta:"
Leia o planeta
caso $ planeta em
Mercúrio | Vênus | Terra | Marte | Júpiter | Saturno | Urano | Netuno)
eco "$ planeta é um planeta do sistema solar"
;;
Plutão)
eco "$ planeta é uma planet anã"
;;
"Planet Nine")
eco "$ planeta ainda não descoberto"
;;
*)
eco "não do sistema solar"
;;
ESAC

O script será executado exatamente como o primeiro exemplo. Ele pedirá um nome de planeta, verifique se a entrada corresponde a qualquer cláusula e executará a cláusula de correspondência.

Se você examinou cuidadosamente, você notará que o "Planeta nove" é o único valor embrulhado nas citações. É porque há espaço nele. Usando citações, estamos dizendo ao shell para tratá -lo como parte de um único padrão.

Sensibilidade do caso na declaração de caso

Observe que no último exemplo, a entrada é sensível ao minúsculas. Este é o comportamento de festa padrão. No entanto, podemos dizer à Shell para executar o script no modo insensível ao caso.

Para fazer isso, adicione a seguinte linha no início do script.

$ shopt -s nocasematch

O script deve ficar assim.


Agora, teste o script. Insira o valor com um caso diferente.

$ ./amostra.sh

Pensamento final

Este guia abrange o básico das declarações do caso Bash. Ele também demonstra como implementá -los em scripts bash. Você deve se sentir confortável usando a instrução CASE. As declarações de caso Bash são frequentemente usadas para passar os parâmetros para scripts de conchas de uma linha de comando. Por exemplo, os scripts inits usam declarações de caso para iniciar, parar e reiniciar serviços. Depois de ler este guia, você poderá implementar a declaração de caso Bash em seus scripts.

Computação feliz!