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!