Tipos de declarações condicionais
Os seguintes tipos de declarações condicionais podem ser usadas no Bash.
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
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.
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
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
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
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
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
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!