Comando do caso Bash

Comando do caso Bash

O comando do caso de bash é usado para tomar medidas adequadas comparando dados como a instrução IF. Funciona como uma declaração de caixa de switch de outras linguagens de programação padrão. Este comando começa com a declaração 'case' e fecha pela declaração 'ESAC'. Nenhuma declaração de quebra é usada no comando de caso e suporte duplo (;;) é ​​obrigado a mencionar a (s) declaração (s) para qualquer correspondência específica. Este comando expande a expressão e tenta combinar com o padrão fornecido 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 aceitará um valor de string e corresponderá ao valor com cada expressão. O script a seguir gerará "nenhuma entrada encontrada" se não houver expressão correspondente,
caso 1.sh

#!/BIN/BASH
eco "digite seu nome"
Leia o nome
Caso $ nome em
Simmin)
eco "Sua cor favorita é azul" ;;
Fahmida)
eco "Sua bebida favorita é Sprite" ;;
*)
eco "sem entrada encontrada" ;;
ESAC

Execute o script.

$ Bash Case1.sh

Saída:

O arquivo é executado com uma entrada válida e inválida aqui para testar a saída.

Exemplo-2: declaração de caso múltiplo com tubo

Várias expressões de caso podem ser aplicadas no script bash para executar diferentes tipos de declarações. Símbolo de tubo (|) pode ser usado para atribuir as múltiplas expressões. Crie um arquivo bash chamado case2.sh com o seguinte script. Depois de executar o script, se o valor de entrada corresponde a qualquer expressão, o valor do texto correspondente será impresso.
case2.sh

#!/BIN/BASH
eco "digite seu número de identificação"
Leia ID
caso $ id em
65341)
eco "Sua posição é 1ª" ;;
97564 | 88453)
eco "Sua posição é a segunda" ;;
45087)
eco "Sua posição é a terceira" ;;
*)
eco "ID inválido" ;;
ESAC

Execute o script .

$ Bash Case2.sh

Saída:

Este script também funciona como o exemplo anterior. A única diferença é que os valores de expressão múltipla são testados para uma única saída.

EXEMPLO 3: Como sair do Case/ESAC Bloco de instrução

Quando o comando Bash Case é usado em um loop infinito, o comando de saída é obrigado a usar para encerrar o loop. Este exemplo mostra como esses tipos de tarefa podem ser feitos. Crie um arquivo de texto chamado case3.sh com o seguinte script. Este script levará qualquer número de 1 a 3 como entrada. Se a entrada for 1, dois números serão adicionados, se a entrada for 2, dois números serão subtraídos e se o número de entrada for 3, dois números serão multiplicados. A saída será "entrada inválida" se o número de entrada for superior a 3 ou menos de 1 ou vazio.
case3.sh

#!/BIN/BASH
#!/BIN/BASH
enquanto (verdadeiro)
fazer
a = 8
b = 4
((x = $ a+$ b))
((y = $ a- $ b))
((z = $ a*$ b))
eco "tipo 1 ou 2 ou 3"
Leia Ans
Caso $ Ans em
1) eco "A soma de $ A e $ B é $ x & saída" ;;
2) eco "A subtração de $ A e $ B é $ y & saída" ;;
3) eco "A multiplicação de $ A e $ B é $ z & saída" ;;
*) eco "entrada inválida"
ESAC
feito

Execute o script.

$ Bash Case3.sh

Saída:

O script continuará sendo executado até que o 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 script a seguir que verificará o valor da segunda variável de argumento.

#!/BIN/BASH
caso "$ 2" em
"Ubuntu")
eco "O segundo argumento é $ 2."
;;
"CENTOS")
eco "O segundo argumento é $ 2."
;;
"")
eco "o segundo argumento está vazio."
;;
ESAC

Execute o script.

$ bash case4.sh

Saída:

Aqui, o script é executado sem qualquer valor de argumento da linha de segundo comando pela primeira vez e a saída mostra "o segundo argumento está vazio". Quando o script é executado com um segundo valor de argumento da linha de comando pela segunda vez, nenhuma saída é mostrada.

Exemplo 5: declaração de caso múltiplo com base na entrada do usuário

Crie um arquivo bash chamado case5.sh com o seguinte script. O script levará o nome do mês como entrada do usuário. Se o nome do mês corresponder com qualquer valor de caso, uma mensagem de texto específica será atribuída à mensagem variável. O valor de entrada deve ser o nome do mês inteiro ou o nome do mês de três caracteres.

case5.sh

#!/BIN/BASH
eco "Digite o nome de um mês"
Leia o mês
Caso $ mês em
JANEIRO | JAN*)
Mensagem = "21 de fevereiro é o dia das mães internacionais."
;;
Fevereiro | fevereiro*)
Mensagem = "21 de fevereiro é o dia das mães internacionais."
;;
Março | mar*)
Mensagem = "9 de março é o dia mundial de rim."
;;
Abril | abril*)
Message = "O mês atual não é fevereiro"
;;
Maio | maio*)
Mensagem = "O mês atual é fevereiro"
;;
Junho | Jun*)
Mensagem = "O mês atual é fevereiro"
;;
*)
Mensagem = "Nenhuma informação correspondente encontrada"
;;
ESAC
eco $ mensagem

Execute o script.

$ bash case5.sh

Saída:

A saída a seguir aparecerá para o valor de entrada, 'março' ou 'mar'.

Exemplo 6: Verifique a variável na declaração de caso BASH

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 de bash” será impressa.

case6.sh

#!/BIN/BASH
Caso $ 1 em
("") eco "eu gosto de programação de bash";
ESAC

Execute o script.

$ Bash Case6.sh

Saída:

Este script é executado com e sem os primeiros argumentos. Não haverá saída se nenhuma variável de argumento da linha de comando passar.

Conclusão

Diferentes usos do comando de case bash são mostrados neste artigo. Se os leitores praticarem esses exemplos corretamente, será mais fácil para eles resolver muitos problemas de programação do Bash.