Guia do Linux/Iniciante+Intermediário/Comandos diversos/if
Aparência
O comando if serve para testar uma variável lógica e, se ela for verdadeira, executar comandos.
A forma de usar é:
if (condição); then (comando1); fi
ou, em forma identada:
if (condição)
then
(comando1)
fi
Mais de um comando pode ser invocado:
if (condição); then (comando1); (comando2); (comando3); fi
ou:
if (condição)
then
(comando1)
(comando2)
(comando3)
fi
Comandos if podem ser aninhados:
if (condição1)
then
(comando1)
if (condição2)
(comando2)
fi
(comando3)
fi
Para usar comandos na negação da condição, usar else[1]:
if (condição)
then
(comando-sim)
else
(comando-não)
fi
Para combinar o aninhamento de ifs com elses, usa-se elif:
if (condição1)
then
(comando1)
elif (condição2)
then
(comando2)
elif (condição3)
then
(comando3)
else # opcional
(comando4) # opcional
fi
Observe-se a sintaxe:
- Depois do if sempre vem um then, e cada if é fechado por um fi
- Depois do else não vem um then, e o else é fechado pelo mesmo fi que fecha o if
- Depois do elif sempre vem um then, e o elif também é fechado pelo mesmo fi que fecha o if inicial
Test
[editar | editar código]A condição é gerada através da instrução test. É possível escrever o teste de duas formas, explicitamente (escrevendo test) ou usando colchetes[2]:
if [ (coisas a serem testadas) ]; then (comandos); fi
ou
if test (coisas a serem testadas); then (comandos); fi
Testes sobre arquivos
[editar | editar código]Existem vários testes sobre arquivos[2], como testes sobre existência, se o arquivo é um diretório, etc. O mais simples é o teste da existência:
arquivo=/home/meunome/meulogo.png
if test -e $arquivo
cat "$arquivo existe"
fi
Testes de comparação de arquivos
[editar | editar código]Testes de comparação de números e strings
[editar | editar código]Combinando testes (and, or, not lógicos)
[editar | editar código]Referências
[editar | editar código]- ↑ Conditionals
- ↑ 2,0 2,1 Introduction to if, Bash-Beginners-Guide