Neste tópico, entenderemos como usar instruções if-else em scripts Bash para concluir nossas tarefas automatizadas.
As instruções Bash if-else são usadas para executar tarefas condicionais no fluxo sequencial de execução de instruções. Às vezes, queremos processar um conjunto específico de afirmações se uma condição for verdadeira e outro conjunto de afirmações se for falsa. Para realizar este tipo de ações, podemos aplicar o mecanismo if-else. Podemos aplicar a condição com a 'instrução if'.
Sintaxe Bash If Else
Uma sintaxe da instrução if-else no Bash Shell Scripting pode ser definida como abaixo:
if [ condition ]; then else fi
Pontos importantes a serem lembrados
- Podemos usar um conjunto de uma ou mais condições unidas por meio de operadores condicionais.
- Os comandos de bloco Else incluem um conjunto de ações a serem executadas quando a condição for falsa.
- O ponto e vírgula (;) após a expressão condicional é obrigatório.
Confira os exemplos a seguir que demonstram o uso da instrução if-else no Bash Script:
Exemplo 1
O exemplo a seguir consiste em dois cenários diferentes em que na primeira instrução if-else a condição é verdadeira e na segunda instrução if-else a condição é falsa.
#!/bin/bash #when the condition is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' else echo '10 is not greater than 3.' fi #when the condition is false if [ 3 -gt 10 ]; then echo '3 is greater than 10.' else echo '3 is not greater than 10.' fi
Saída
Na primeira expressão if-else, a condição ( 10 -gt 3 ) é verdadeira e, portanto, a instrução no bloco if é executada. Enquanto na outra expressão if-else, a condição ( 3 -gt 10 ) é falsa e, portanto, a instrução no bloco else é executada.
Exemplo 2
Neste exemplo, explicamos como usar múltiplas condições com a instrução if-else no Bash. Usamos operadores lógicos bash para unir múltiplas condições.
#!/bin/bash # When condition is true # TRUE && FALSE || FALSE || TRUE if [[ 10 -gt 9 && 10 == 9 || 2 -lt 1 || 25 -gt 20 ]]; then echo 'Given condition is true.' else echo 'Given condition is false.' fi # When condition is false #TRUE && FALSE || FALSE || TRUE if [[ 10 -gt 9 && 10 == 8 || 3 -gt 4 || 8 -gt 8 ]]; then echo 'Given condition is true.' else echo 'Given condition is not true.' fi
Saída
Instrução Bash If Else em uma única linha
Podemos escrever uma 'instrução if-else' completa junto com os comandos em uma única linha. Você precisa seguir as regras fornecidas para usar a instrução if-else em uma única linha:
- Use ponto e vírgula (;) no final das instruções nos blocos if e else.
- Use espaços como delimitador para anexar todas as instruções.
Um exemplo é dado abaixo demonstrando como usar a instrução if-else em uma única linha:
Exemplo
#!/bin/bash read -p 'Enter a value:' value if [ $value -gt 9 ]; then echo 'The value you typed is greater than 9.'; else echo 'The value you typed is not greater than 9.'; fi
Saída
Quando inserimos um valor como 25, a saída será semelhante a:
Bash aninhado se mais
Assim como a instrução if aninhada, a instrução if-else também pode ser usada dentro de outra instrução if-else. É chamado if-else aninhado em scripts Bash.
A seguir está um exemplo que explica como usar a instrução if-else aninhada no Bash:
Exemplo
#!/bin/bash read -p 'Enter a value:' value if [ $value -gt 9 ]; then if [ $value -lt 11 ]; then echo '$value>9, $value<11' else echo 'the value you typed is greater than 9.' fi not < pre> <p> <strong>Output</strong> </p> <p>If we enter 10 as value, then the output will look like this:</p> <img src="//techcodeview.com/img/bash-tutorial/63/bash-if-else-4.webp" alt="Bash If Else Statement"> <h2>Conclusion <p>In this topic, we have learned about the syntax and usage of <strong>Bash if-else</strong> statement with the examples.</p> <hr></h2></11'>