Shell Script – Switch/case e select

Quem já fez alguma matéria de programação na faculdade ou algum curso técnico ou até mesmo algum curso ou vídeo-aulas esta se identificando bastante com os tópicos de shell script e é a mesma ideia, porém para quem não conhece irei explicar.

A estrutura Switch/case é como se fosse uma estrutura if porém não aceita operações logicas como utilizamos, e ela já possui todas as opções(cases) definidos.

Estrutura de um Switch/Case:

Vamos a um exemplo acho que irá ajudar esclarecer, switchcaseEx1.sh:

Saída:

Agora vamos com um exemplo usando texto como opção, switchcaseEx2.sh:

Saída:

Agora a sacada, usando texto, numero e/ou ambas combinações no switchcaseEx3.sh:

Saída:

Com o case 6 foi possível 4 tipos de entradas, muito útil este tipo de uso.

Estrutura de um Select:

Esse é legal, imagine um menu pronto para o operador, eis o comando. Segue a estrutura abaixo:

Agora vamos ao exemplo selectEx1.sh:

Saída:

Como podemos ver no exemplo acima, apenas colocamos uma lista de opções e ele gera o “menu”, mas tem um inconveniente, eu escolho uma opção ele mostra ela porém aguarde informar outra opção, as vezes isso não é desejado, resolvendo isso facilmente no selectEx2.sh:

Saída:

Hum, legal heim. Porém nosso script inicia, mas nenhuma mensagem é exibida sobre as opções como “Escolha um suco” para isso teria que usar um echo antes, mas não vamos usar porque conseguimos isso com o select também, vamos ao exemplo selectEx3.sh:

Saída:

Enquanto PS1 e PS2 são para interações com o prompt o PS3 é para o select, essa foi a grande sacada deste exemplo.
E dentro do select você pode usar vários outros comandos e estruturas que vimos aqui como if e else e o próprio switch/case, vamos ao exemplo selectEx4.sh:

Saída:

Acho que deu para compreender a ideia do switch/case e o select, o tipo de saída e resultado que cada um possui e os recursos que podemos combinar, entendendo este post você pode fazer diversos scripts com if, else, switch/case, for, while, uso de break e sem break e seu efeito, crie scripts para ir treinamento e testando os recursos até aqui passado.

Até a próxima!

Share Button

CC BY-NC-SA 4.0 Shell Script – Switch/case e select by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

  • Fala Cleiton, utilizo shell-script no meu dia a dia a mais de 10 anos e nunca tinha visto esse select, num primeiro momento não consegui visualizar a diferente entre ele e o um for, com os exemplos ficou claro. Muito interessante essa dica, facilita a criação de menu, normalmente utilizei o zenity ou dialog, mas para um menu simples o select é uma mão na roda.

    • Opa, que bom que gostou Felipe, tem vários outros posts que vou escrever sobre Shell Script e ira vir muita coisa legal.

      Abraço.