Declaração condicional do bash

Declaração condicional do bash
A declaração condicional é usada em qualquer linguagem de programação para executar qualquer tarefa de tomada de decisão. Esta afirmação também é usada no Bash para executar tarefas automatizadas como outra linguagem de programação, apenas a sintaxe é um pouco diferente no Bash. Dois tipos de declarações condicionais podem ser usadas no Bash. Essas são as declarações 'se' e 'case'. As declarações 'se' podem ser usadas para verificar as condições de várias maneiras. Muitas variações de declarações 'se' são descritas neste tutorial. A declaração 'case' é usada como uma alternativa a 'se' declaração. Porém, algumas condições específicas podem ser verificadas apenas usando a instrução 'case' e não suporta várias condições como 'se' instrução. Portanto, qualquer tarefa realizada pela instrução 'case' pode ser realizada facilmente por 'declaração' se ', mas' case 'não pode ser usada para todos os tipos da tarefa realizada por' se 'declaração. Este tutorial ajudará os leitores a aprender o uso de declarações condicionais no script Bash usando vários exemplos.

Tipos de declarações condicionais

Os seguintes tipos de declarações condicionais podem ser usadas no Bash.

  1. If Declaração
  2. Declaração se mais
  3. se a declaração Elif
  4. Declaração aninhada
  5. Declaração do caso

Cada tipo de afirmação é explicado neste tutorial com um exemplo.

Operadores condicionais

Muitos operadores condicionais podem ser usados ​​na declaração 'se' para executar qualquer tarefa condicional. Alguns operadores condicionais principalmente usados ​​são mencionados abaixo.

Operador Descrição
-Eq Retorna verdadeiro se dois números forem equivalentes
-lt Retorna true se um número for menor que outro número
-gt Retorna true se um número for maior que outro número
== Retorna verdadeiro se duas cordas são equivalentes
!= Retorna verdadeiro se duas cordas não forem equivalentes
! Retorna verdadeiro se a expressão for falsa
-d Verifique a existência de um diretório
-e Verifique a existência de um arquivo
-r Verifique a existência de um arquivo e leia a permissão
-c Verifique a existência de um arquivo e escreva a permissão
-x Verifique a existência de um arquivo e execute permissão

Uso de instrução IF simples

Sintaxe:

se [condição]; então
Comando (s)
fi

Exemplo 1: se declarar com a única condição

Este exemplo mostra o uso condicional único da instrução if. Crie um arquivo chamado 'cond1.sh 'e adicione o seguinte script. Este script aceitará um valor numérico como entrada e verificar o valor é menor que 100 ou não usando a condição se. Se a condição for verdadeira, ela imprimirá uma mensagem no terminal.

cond1.sh

#!/BIN/BASH
eco "digite um número"
Leia n
se [$ n -LT 100]; então
printf "$ n é menor que 100 \ n"
fi

Saída:

Execute o script.

$ Bash cond1.sh

Aqui, 87 é tomado como entrada, que é menor que 100. Então, a saída é “87 é menor que 100”. Nenhuma saída é impressa para a entrada maior que 100.

Exemplo-2: If Declaração com várias condições

Como você pode aplicar duas condições com a instrução lógica e em 'se' é mostrada neste exemplo. Crie um arquivo chamado 'cond2.sh'e adicione o seguinte script. Aqui, nome de usuário e senha será retirado do usuário. Em seguida, a instrução 'se' for usada para verificar se o nome de usuário é 'Admin'E a senha é'superusuário'. Se ambos os valores corresponderem, então a instrução 'se' retornará true e imprimirá a mensagem “Login bem -sucedido”.

cond2.sh

#!/BIN/BASH
eco "Entre o nome de usuário"
Leia Un
eco "Digite a senha"
Leia PW
se [["$ un" == "admin" && "$ pw" == "superUser"]]; então
eco "Login bem -sucedido."
fi

Saída:

Execute o script.

$ Bash cond2.sh

O script não imprimirá a saída para entrada inválida e imprimirá a mensagem de sucesso para entrada válida.

Uso da declaração if-else

Sintaxe:

se [condição]; então
Comando (s)
outro
Comando (s)
fi

Exemplo 3: Declaração IF-Else com várias condições

Para executar uma declaração para a verdadeira condição e outra declaração para a condição falsa, if-else A declaração é usada neste exemplo. Crie um arquivo chamado 'Cond3.sh ' e adicione o seguinte script. Aqui, $ nome A variável é usada para obter informações do usuário e o valor de $ nome será comparado com dois valores, 'Neha' e 'Nada'. Se $ nome combina com qualquer um desses valores, se a condição retornará verdadeira e a declaração de 'se' parte será executada. Se $ nome não corresponde a nenhum dos valores, se a condição retornará falsa e a declaração de 'outro' parte será executada.

COND3.sh

#!/BIN/BASH
eco "digite seu nome"
Leia o nome
se [[$ name == "neha" || $ name == 'nil']]; então
eco "você ganhou o prêmio"
outro
eco "tente para a próxima vez"
fi

Saída:

Execute o script.

$ Bash Cond3.sh

A saída é: "Você ganhou o prêmio" por entrada válida e "tente a próxima vez" para a entrada inválida.

Uso da declaração if-elif-else

Sintaxe:

se [condição]; então
Comando (s)
Elif [condição]; então
Comando (s)
..
outro
Comando (s)
fi

Exemplo-4: Declaração if-elif-else para verificar diferentes condições

Múltiplas condições com múltiplas declarações se são declaradas neste exemplo para imprimir a nota com base na marca de entrada. Crie um arquivo chamado 'Cond4.sh'e adicione o seguinte script. Depois de tomar o valor de $ mark, A primeira instrução 'se' testará o valor maior ou igual a 90. Se ele retornar verdade. O segundo 'se' testará o valor é menor que 90 e maior ou igual a 80. Se ele retornar verdade. Se a terceira condição for verdadeira, ele imprimirá “Grau - B+”, caso contrário, vá para a quarta condição. Se a quarta condição for verdadeira, será imprimir “Grau - C+” e, se retornar FALSE, a declaração de Else Part será executada que imprimirá “Grau - F”.

COND4.sh

#!/BIN/BASH
eco "Entre na marca"
Leia Mark
if (($ mark> = 90)); então
eco "grau - a+"
Elif (($ Mark < 90 && $mark >= 80)); então
eco "Grade - A"
Elif (($ Mark < 80 && $mark >= 70)); então
eco "grau - b+"
Elif (($ Mark < 70 && $mark >= 60)); então
eco "grau - c+"
outro
eco "grau - f"
fi

Saída:

Execute o script.

$ Bash Cond4.sh

O script é testado por três valores de marca. Estes são 95, 79 e 50. De acordo com as condições usadas no script, a seguinte saída é impressa.

Uso de aninhado se

Sintaxe:

se [condição]; então
Comandos
se [condição]; então
Comandos
fi
fi

Exemplo 5: Calcule o bônus com base no valor e duração das vendas

Este exemplo mostra o uso de declaração aninhada se calcular o bônus com base no valor das vendas e na duração do tempo. Crie um arquivo chamado 'cond5.sh 'e adicione o seguinte código. Os valores de $ valor e $ duração são tomados como entrada. Em seguida, a primeira declaração 'se' verificará o valor de $ é maior ou igual a 10000 ou não. Se ele retornar true, verificará a condição de aninhada 'se'. o valor de $ duração é verificado pela declaração interna 'se'. Se $ duração é menor ou igual a 7, então “você receberá 20% de Bolus” será armazenado, caso contrário, a mensagem “Você receberá 15% de bônus” será armazenado no $ saída variável. Se a primeira condição 'se' retornar falsa, as declarações de outra parte serão executadas. Na segunda condição aninhada 'se', “você receberá uma mensagem de 10% bônus” imprimirá para devolver um valor verdadeiro e “você receberá uma mensagem de bônus de 5%” será imprimir para devolver um valor falso.

cond5.sh

#!/BIN/BASH
eco "Entre no valor das vendas"
Leia o valor
eco "Digite a duração do tempo"
Leia a duração
if (($ valor> = 10000)); então
if (($ duração <= 7 )); then
output = "Você receberá 20% de bônus"
outro
output = "Você receberá 15% de bônus"
fi
outro
if (($ duração <= 10 )); then
output = "Você receberá 10% de bônus"
outro
output = "Você receberá 5% de bônus"
fi
fi
eco "$ saída"

Saída:

Execute o script.

$ Bash Cond5.sh

O script é testado por 12000 como quantidade e 5 como valor de duração primeiro. De acordo com a condição 'se', a mensagem: “Você receberá 20% de bônus é impresso. Em seguida, o script é testado por 9000 como a quantidade e 12 valores de duração e a mensagem "Você receberá 5% de bônus" é impresso.

Uso da declaração de caso

Sintaxe:

Caso em
padrão 1) comandos ;;
padrão n) comandos ;;
ESAC

Declaração do Exemplo 6: 'Case' com um único valor

A instrução 'case' pode ser usada como uma alternativa a 'se'. Crie um arquivo chamado 'Cond6.sh ' e adicione o código a seguir para fazer algumas operações aritméticas simples. Este script lerá três valores da linha de comando e armazenará nas variáveis, $ n1, $ n2 e $ op. Aqui, $ n1 e $ n2 são usados ​​para armazenar dois valores numéricos e $ op é usado para armazenar qualquer operador ou símbolo aritmético. A instrução 'case' é usada para verificar se há quatro símbolos para fazer qualquer operação aritmética. Quando $ op é '+', ele adicionará $ n1 e $ n2 e armazenará o resultado em resultado $ resultado. Da mesma forma, '-' e '/' símbolos são usados ​​para fazer a operação de subtração e divisão. O símbolo 'x' é usado aqui para fazer a operação de multiplicação. Para qualquer outro valor de $ op, ele imprimirá uma mensagem "Número errado de argumentos".

cond6.sh

#!/BIN/BASH
N1 = $ 1
op = $ 2
N2 = $ 3
caso $ op in
'+')
((Resultado = $ n1+$ n2)) ;;
'-')
((Resultado = $ n1- $ n2)) ;;
'x')
((Resultado = $ n1*$ n2)) ;;
'/')
((Resultado = $ n1/$ n2)) ;;
*)
eco "números errados de argumentos"
saída 0 ;;
ESAC
eco "$ n1 $ op $ n2 = $ resultado"

Saída:

Execute o script com três argumentos da linha de comando. O script é executado por quatro vezes usando quatro operadores, '+', '-', 'x' e '/'.

$ Bash Cond6.SH 40 + 20
$ Bash Cond6.SH 40 - 20
$ Bash Cond6.SH 40 x 20
$ Bash Cond6.SH 40 /20

A saída a seguir aparecerá após a execução do script.

Exemplo 7: declaração 'case' com uma variedade de valores

A declaração 'case' não pode definir várias condições com o operador lógico como 'se' declaração. Mas usando o tubo ('|'), várias condições podem ser atribuídas na instrução 'case'. Este exemplo mostra o valor do grau com base em marcas como Exemplo-4 mas usando a declaração 'case' em vez de 'se'. $ nome e $ marOs valores de K são dados por argumentos da linha de comando. A primeira condição é definida por '9 [0-9] | 100'Para imprimir “Grau - A+”. Isso significa que se o valor $ mark estiver dentro de 90-99 ou 100, a condição será verdadeira. A segunda condição é '8 [0-9]'Para imprimir “grau - A” e isso corresponderá $ mark com qualquer valor do intervalo, 80-89. A terceira e quarta condições funcionam como a segunda condição. A quinta condição é '0 | 1 [0-9] | 2 [0-9] | 3 [0-9] | 4 [0-9] | 5 [0-9]'para a impressão' grau - f 'e combinará $ mark com 0 ou qualquer número nos intervalos 0-9, 10-19, 20-29, 30-39, 40-49 e 50-59.

cond7.sh

#!/BIN/BASH
# Grau de impressão com base na marca
nome = $ 1
Mark = $ 2
Caso $ Mark
9 [0-9] | 100)
grau = "A+" ;;
8 [0-9])
grau = "A" ;;
7 [0-9])
grau = "b+" ;;
6 [0-9])
grau = "c+" ;;
0 | [0-9] | 1 [0-9] | 2 [0-9] | 3 [0-9] | 4 [0-9] | 5 [0-9])
grau = "f" ;;
*)
eco "marca inválida"
saída 0 ;;
ESAC
eco "$ nome obtido $ grau"

Saída:

Execute o script com dois argumentos da linha de comando. O script é executado por quatro vezes com diferentes valores de argumento.

$ Bash cond7.Shily 92
$ Bash cond7.SH Nahar 78
$ Bash cond7.SH John 500
$ Bash cond7.sh John aa

Conclusão:

Múltiplos usos das declarações de condição são tentadas para explicar neste tutorial usando exemplos apropriados. Esperança, o leitor poderá usar declarações condicionais no script de bash com eficiência depois de praticar os exemplos acima adequadamente.

Para mais informações, assista ao vídeo!