Guia do Linux/Iniciante+Intermediário/Comandos diversos/if
Aspeto
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-fonte]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-fonte]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-fonte]Testes de comparação de números e strings
[editar | editar código-fonte]Combinando testes (and, or, not lógicos)
[editar | editar código-fonte]Referências
[editar | editar código-fonte]- ↑ Conditionals
- ↑ 2,0 2,1 Introduction to if, Bash-Beginners-Guide