O comando Bash case é usado para tomar as medidas adequadas, comparando dados como a instrução if. Funciona como uma instrução switch-case de outras linguagens de programação padrão. Este comando começa com a instrução 'case' e termina com a instrução 'esac'. Nenhuma instrução break é usada no comando case e colchetes duplos (;;) são necessários para mencionar a (s) instrução (ões) para qualquer correspondência particular. Este comando expande a expressão e tenta combinar com o padrão dado e o código de status de saída deste comando será zero se nenhuma correspondência for encontrada. Alguns exemplos comuns de declarações de caso são mostrados neste tutorial.
Exemplo-1: declaração de caso simples
Uma única expressão condicional é usada no comando bash case para gerar a saída com base na condição de correspondência. Crie um arquivo bash chamado caso 1.sh com o seguinte script bash. O script pegará um valor de string e combinará o valor com cada expressão. O script a seguir irá gerar “Nenhuma entrada encontrada” se nenhuma expressão correspondente existir,
caso 1.sh
echo "Digite seu nome"
ler o nome
caso $ name em
Yesmin)
echo "Sua cor favorita é azul" ;;
Fahmida)
echo "Sua bebida favorita é Sprite" ;;
*)
echo "Nenhuma entrada encontrada" ;;
esac
Execute o script.
$ bash case1.shResultado:
O arquivo é executado com uma entrada válida e inválida aqui para testar a saída.
Exemplo-2: declaração de múltiplos casos com barra vertical
Várias expressões de caso podem ser aplicadas no script bash para executar diferentes tipos de instruções. O símbolo de barra vertical (|) pode ser usado para atribuir as expressões múltiplas. Crie um arquivo bash chamado case2.sh com o seguinte script. Depois de executar o script, se o valor de entrada corresponder a qualquer expressão, o valor de texto correspondente será impresso.
case2.sh
echo "Digite o seu número de identificação"
ler ID
caso $ ID em
65341)
echo "Sua posição é a 1ª" ;;
97564 | 88453)
echo "Sua posição é a 2ª" ;;
45087)
echo "Sua posição é a 3ª" ;;
*)
echo "ID inválida" ;;
esac
Execute o script .
$ bash case2.shResultado:
Este script também funciona como o exemplo anterior. A única diferença é que os múltiplos valores de expressão são testados para uma única saída.
Exemplo-3: Como sair do bloco de instrução case / esac
Quando o comando bash case é usado em um loop infinito, o comando de saída deve ser usado para encerrar o loop. Este exemplo mostra como esses tipos de tarefa podem ser realizados. Crie um arquivo de texto chamado case3.sh com o seguinte script. Este script terá qualquer número de 1 a 3 como entrada. Se a entrada for 1, então dois números serão adicionados, se a entrada for 2, então dois números serão subtraídos e se o número de entrada for 3, então dois números serão multiplicados. A saída será "entrada inválida" se o número de entrada for maior que 3 ou menor que 1 ou vazio.
case3.sh
#!/ bin / bash
enquanto (verdadeiro)
Faz
a = 8
b = 4
((x = $ a + $ b))
((y = $ a- $ b))
((z = $ a * $ b))
echo "Tipo 1 ou 2 ou 3"
leia ans
case $ ans em
1) echo "A soma de $ a e $ b é $ x & exit" ;;
2) echo "A subtração de $ a e $ b é $ y & exit" ;;
3) echo "A multiplicação de $ a e $ b é $ z & exit" ;;
*) echo "Entrada inválida"
esac
feito
Execute o script.
$ bash case3.shResultado:
O script continuará a ser executado até que ctrl + c seja pressionado.
Exemplo 4: Verificando o valor do argumento da linha de comando vazio
A variável de argumento da linha de comando pode ser usada na instrução bash case. Crie um arquivo chamado case4.sh com o seguinte script que irá verificar o valor da segunda variável de argumento.
#!/ bin / bashcaso "$ 2" em
"Ubuntu")
echo "O segundo argumento é $ 2."
;;
"CentOS")
echo "O segundo argumento é $ 2."
;;
"")
echo "O segundo argumento está vazio."
;;
esac
Execute o script.
$ bash case4.shResultado:
Aqui, o script é executado sem nenhum segundo valor de argumento da linha de comando pela primeira vez e a saída mostra “O segundo argumento está vazio”. Quando o script é executado com um segundo valor de argumento de linha de comando pela segunda vez, nenhuma saída é mostrada.
Exemplo 5: declaração de múltiplos casos com base na entrada do usuário
Crie um arquivo bash chamado case 5.sh com o seguinte script. O script terá o nome do mês como entrada do usuário. Se o nome do mês corresponder a qualquer valor de caso, então uma mensagem de texto em particular será atribuída à variável Mensagem. O valor de entrada deve ser o nome do mês completo ou nome do mês de três caracteres.
case 5.sh
#!/ bin / bashecho "Digite o nome de um mês"
ler o mês
caso $ mês em
Janeiro | janeiro *)
Message = "21 de fevereiro é o nosso dia internacional das mães."
;;
Fevereiro | fevereiro *)
Message = "21 de fevereiro é o nosso dia internacional das mães."
;;
Março | março *)
Message = "9 de março é o dia mundial dos rins."
;;
Abril | abril *)
Message = "O mês atual não é fevereiro"
;;
Maio | maio *)
Message = "O mês atual é fevereiro"
;;
Junho | junho *)
Message = "O mês atual é fevereiro"
;;
*)
Message = "Nenhuma informação correspondente encontrada"
;;
esac
echo $ Message
Execute o script.
$ bash case5.shResultado:
A seguinte saída aparecerá para o valor de entrada, 'março' ou 'março'.
Exemplo 6: Verifique a variável na instrução bash case
Qualquer valor de string pode ser impresso verificando o valor da variável de argumento da linha de comando. Crie um arquivo de texto chamado case6.sh com o seguinte script. Neste exemplo, o valor da primeira variável de argumento é verificado e se o valor estiver vazio, uma string “Eu gosto de programação bash” será impressa.
case6.sh
#!/ bin / bashestojo $ 1 em
("") echo "Eu gosto de programação bash";
esac
Execute o script.
$ bash case6.shResultado:
Este script é executado com e sem primeiros argumentos. Não haverá saída se nenhuma variável de argumento da linha de comando for aprovada.
Conclusão
Diferentes usos do comando bash case são mostrados neste artigo. Se os leitores praticarem esses exemplos apropriadamente, será mais fácil para eles resolverem muitos problemas de programação em bash.