Como usar if...else declaração em Bash

Suraj Joshi 30 janeiro 2023
  1. if Declaração em Bash
  2. if ... else Declaração em Bash
  3. if...elif...else Declaração em Bash
  4. Declaração aninhada if em Bash
Como usar if...else declaração em Bash

As afirmações condicionais são predominantes para a tomada de decisão em quase todas as linguagens de programação. Elas permitem a execução de uma declaração ou declarações somente se uma determinada condição for satisfeita. if ... else condição for utilizada como uma declaração condicional na maioria das linguagens de programação. No Bash também temos declarações if, if...elif...else, if ... else e declarações if aninhadas como declarações condicionais.

if Declaração em Bash

Sintaxe da declaração if

if Test-Expression
then
  Statements
fi

No exemplo acima, se a Test-Expression é True, as Statements são executadas. A palavra-chave fi é utilizada para terminar a declaração de if.

Se a Test-Expression não for True, nenhuma das Statements será executada.

Para fazer nosso código parecer mais legível e organizado, podemos utilizar recuos de 4 ou 2 espaços.

Exemplo: if Declaração em Bash

echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
fi

Resultado:

Enter numnber : 4
4 is even number

Aceita um número do usuário e dá a saída somente se o número for igual.

Se o número for par, o restante é zero quando o número é dividido por dois. Portanto, a expressão de teste é True para que a declaração echo seja executada.

if ... else Declaração em Bash

Sintaxe da if ... else Declaração

if Test-Expression
then
  Statements-1

else
  Statements-2
fi

Neste exemplo, se a Test-Expression é True, as Statements-1 são executadas; caso contrário, as Statements-2 são executadas. Para finalizar a declaração if ... else, é utilizada a palavra-chave fi.

Exemplo: if...else Declaração em Bash

echo -n "Enter numnber : "
read n
 
rem=$(( $n % 2 ))
 
if [ $rem -eq 0 ]
then
  echo "$n is even number"
else
  echo "$n is odd number"
fi

Resultado:

Enter numnber : 5
4 is odd number

Aceita um número do usuário e dá saída, dependendo se o número de entrada é exatamente divisível por 2 ou não.

Se o número for par, o restante é zero quando o número é dividido por dois; portanto, a expressão de teste é True e a declaração echo "$n is even number" é executada.

Se o número for ímpar, o restante não é zero; portanto, a expressão de teste é False, e a afirmação echo "$n is odd number" é executada.

if...elif...else Declaração em Bash

Sintaxe da declaração if...elif...else

if Test-Expression-1
then
  Statements-1
elif Test-Expression-2
then
  Statements-2

else
  Statements-3
fi

Se o Test-Expression-1 for True, o Statements-1 é executado. Caso contrário, se a Test-Expression-2 for True, as Statements-2 são executadas.

Se nenhuma das expressões de teste for True, as Statements-3 serão executadas.

Podemos ter quantas declarações de elif desejarmos, e a declaração de else é opcional.

Exemplo: if...elif...else Declaração em Bash

echo -n "Enter the value of a: "
read a

echo -n "Enter the value of b: "
read b

if [ $a -lt $b ]
then
   echo "a is less than b"
   
elif [ $a -gt $b ]
then
   echo "a is greater than b"

else
   echo "a is equal to b"
fi

Resultado:

Enter the value of a: 4
Enter the value of b: 4
a is equal to b

Aceita dois números como entrada do usuário e imprime o resultado com base em qual das expressões de teste é verdadeira.

Se a<b, o programa imprime a is less than b.

Se a>b, o programa imprime a is greater than b.

Se nenhuma das afirmações condicionais for verdadeira, o programa imprime a is equal to b.

Declaração aninhada if em Bash

Quando uma declaração if é colocada dentro de outra declaração if, ela é chamada de declaração if aninhada.

echo -n "Enter numnber : "
read a
 
rem=$(( $a % 2 ))
 
if [ $rem -eq 0 ]
then
  if [ $a -gt 10 ]
  then
    echo "$a is even number and greater than 10."
	
  else
    echo "$a is even number and less than 10."
  fi
else
  echo "$a is odd number"
fi

Resultado:

Enter numnber : 46
46 is even number and greater than 10.

Demonstra a utilização da declaração aninhada de if. Se o número for exatamente divisível por 2 e maior que 10, echo "$a is even number and greater than 10." é executado.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn