Construção Condicional if..then..else - Linux
A construção condicional if..then
if condição then comandos fi
Após if
then
fi
Por exemplo, vamos definir um script chamado hello
#!/bin/bash
# Construção condicional if..then
a=5
b=5
if `test $a -eq $b`
then
echo "a e b são iguais"
fi
echo "Fim do programa"
exit 0
Aqui, a condição test $a -eq $b
a
b
echo
if..then
fi
echo
Vamos executar o script:
programicio@Programicio:~$ bash hello a e b são iguais Fim do programa
Podemos ver que as duas variáveis são iguais.
Vale notar que também poderíamos simplificar a condição da seguinte forma:
if [ $a -eq $b ]
Agora, vamos alterar os valores das variáveis no script:
#!/bin/bash
# Construção condicional if..then
a=6
b=5
if [ $a -eq $b ]
then
echo "a e b são iguais"
fi
echo "Fim do programa"
exit 0
Como as variáveis agora não são iguais, a condição é falsa e os comandos após then
programicio@Programicio:~$ bash hello Fim do programa
else
Com o operador else
#!/bin/bash
if [ $1 -eq $2 ]
then
echo "os números são iguais"
else
echo "os números NÃO são iguais"
fi
echo "Fim do programa"
exit 0
Aqui, comparamos dois números, que são argumentos do script. Se eles são iguais, uma mensagem é exibida (após then
else
programicio@Programicio:~$ bash hello 5 5 os números são iguais Fim do programa programicio@Programicio:~$ bash hello 6 5 os números NÃO são iguais Fim do programa
elif
Com o operador elif
if
elif condição then comandos
Após elif
then
Por exemplo, no caso da comparação de dois números, podem ocorrer três situações: o primeiro número é maior que o segundo, o primeiro número é menor que o segundo e os dois números são iguais. Vamos definir um script que trate todas essas situações:
#!/bin/bash
if [ $1 -gt $2 ]
then
echo "O primeiro número é maior que o segundo"
elif [ $1 -lt $2 ]
then
echo "O primeiro número é menor que o segundo"
else
echo "Os dois números são iguais"
fi
echo "Fim do programa"
exit 0
Após if
$1 -gt $2
gt
then
if
elif - $1 -lt $2
then
if
else
Vamos testar o script passando dois números:
programicio@Programicio:~$ bash hello 6 5 O primeiro número é maior que o segundo Fim do programa programicio@Programicio:~$ bash hello 4 5 O primeiro número é menor que o segundo Fim do programa programicio@Programicio:~$ bash hello 5 5 Os dois números são iguais Fim do programa
A construção if..then..else
elif
#!/bin/bash
if [ $1 -eq 1 ]
then
echo "o número é 1"
elif [ $1 -eq 2 ]
then
echo "o número é 2"
elif [ $1 -eq 3 ]
then
echo "o número é 3"
elif [ $1 -eq 4 ]
then
echo "o número é 4"
fi
echo "Fim do programa"
exit 0
Neste caso, o argumento do script é comparado sequencialmente com uma série de números e, se a comparação for verdadeira, a mensagem correspondente é exibida.