Guia do Linux/Iniciante+Intermediário/Comandos diversos/if

Origem: Wikilivros, livros abertos por um mundo aberto.

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]

  1. Conditionals
  2. 2,0 2,1 Introduction to if, Bash-Beginners-Guide