Neste tópico, entenderemos como usar declarações if em scripts Bash para concluir nossas tarefas automatizadas.
se mais em java
Bash se as declarações forem benéficas. Eles são usados para realizar tarefas condicionais no fluxo sequencial de execução de instruções. As instruções If geralmente nos permitem tomar decisões em nossos scripts Bash. Eles nos ajudam a decidir se devemos ou não executar um código com base na condição que podemos definir.
Instruções if básicas
Uma instrução if básica ordena que, se uma condição específica for verdadeira, execute apenas um determinado conjunto de ações. Se não for verdade, não execute essas ações. A instrução If é baseada no seguinte formato:
Sintaxe
if [ expression ]; then statements fi
A afirmação entre então e ser (Se for ao contrário) será executado somente se a expressão (entre colchetes) for verdadeira.
Observação:Observe os espaços utilizados na primeira linha e ponto e vírgula no final da primeira linha; ambos são de uso obrigatório.Se declaração condicionaltermina comser.
- Para usar múltiplas condições com o operador AND:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Para usar múltiplas condições com o operador OR:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Para expressões compostas com operadores AND e OR, podemos usar a seguinte sintaxe:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
A seguir estão alguns exemplos que demonstram o uso da instrução if:
Exemplo 1
Neste exemplo, pegue uma entrada do usuário de qualquer número e verifique se o valor é maior que 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Saída
Se inserirmos o número 159, a saída será semelhante a:
Exemplo 2
Neste exemplo, demonstramos o uso de declaração if com um cenário simples de comparação de duas strings:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Saída
filmes123 para
Exemplo 3
Neste exemplo, demonstramos como comparar números usando a instrução if:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Saída
Exemplo 4
Neste exemplo, definiremos como usar o operador AND para incluir múltiplas condições na expressão if:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Saída
Exemplo 5
Neste exemplo, definiremos como usar o operador OR para incluir múltiplas condições na expressão if:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Saída
Exemplo 6
Neste exemplo, definiremos como usar AND e OR para incluir múltiplas condições na expressão if:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Saída
df.loc
Opções para instrução If em scripts Bash
A instrução If contém muitas opções para executar uma tarefa específica. Essas opções podem ser usadas para operações de arquivo, operações de string, etc. A seguir estão algumas opções mais usadas:
Opções (operadores) | Descrição |
---|---|
! EXPRESSÃO | Para verificar se EXPRESSION é falso. |
-n CADEIA | Para verificar se o comprimento de STRING é maior que zero. |
-z CADEIA | Para verificar se o comprimento de STRING é zero (ou seja, está vazio) |
CADE1 == CADE2 | Para verificar se STRING1 é igual a STRING2. |
STRING1 != STRING2 | Para verificar se STRING1 não é igual a STRING2. |
INTEIRO1 -eq INTEIRO2 | Para verificar se INTEGER1 é numericamente igual a INTEGER2. |
INTEIRO1 -gt INTEIRO2 | Para verificar se INTEGER1 é numericamente maior que INTEGER2. |
INTEGER1 -lt INTEGER2 | Para verificar se INTEGER1 é numericamente menor que INTEGER2. |
-d ARQUIVO | Para verificar se FILE existe e é um diretório. |
-e ARQUIVO | Para verificar se FILE existe. |
-r ARQUIVO | Para verificar se FILE existe e a permissão de leitura foi concedida. |
-s ARQUIVO | Para verificar se FILE existe e seu tamanho é maior que zero (o que significa que não está vazio). |
-w ARQUIVO | Para verificar se FILE existe e a permissão de gravação foi concedida. |
x ARQUIVO | Para verificar se FILE existe e a permissão de execução foi concedida. |
Aninhado se
Você pode aplicar quantas 'instruções if' forem necessárias em seu script bash. Também é possível usar uma instrução if dentro de outra 'instrução if'. É conhecido como instrução If aninhada.
Exemplo
Neste exemplo, descobriremos 'se um determinado número é maior que 50 e se for um número par' usando a expressão if aninhada.
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Saída
Se inserirmos um valor de argumento como 100, a saída será semelhante a:
Conclusão
Neste tópico, discutimos como poderíamos usar a ramificação condicional no fluxo sequencial de execução de instruções com a instrução bash if.