Como usar if...else declaração em Bash
-
if
Declaração emBash
-
if ... else
Declaração emBash
-
if...elif...else
Declaração emBash
-
Declaração aninhada
if
emBash
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 is a backend software engineer at Matrice.ai.
LinkedIn