DevSecOpsARTIGO

DicasLPI 105.2 – Editar e escrever scripts simples – Parte 02

Vamos dar continuidade ao assunto iniciado no artigo anterior: desvio condicional simples, ou melhor, if…then.

Neste artigo iremos dar continuidade ao assunto iniciado no artigo anterior: desvio condicional simples, ou melhor, if…then. Ele tem por finalidade tomar uma decisão e efetuar um desvio no processamento, dependendo, é claro, se a condição atribuída é Verdadeira ou Falsa.

if then else

Lembra do finalzinho do artigo anterior? Então, lá demonstramos propositalmente a utilização do if …then. O shell também utiliza o comando if, que basicamente apresenta a seguinte sintaxe:

if <comando> – Se comando for bem sucedido
then (então)
<comando 1> – execute
<comando2>
else (senão)
<comando3> – outros
<comando4> – e assim por diante
fi (fim do teste)

 

Na linguagem shell, o comando if não testa uma condição (importante!!!), mas sim se uma instrução foi executada com sucesso ou não, isto é, se o código de retorno da instrução foi igual a zero ou não. Vamos aos exemplos para um melhor entendimento:

if test -x /bin/bash ; then
echo “ok”
fi

 

Dissecando

A instrução test avalia se a afirmação é verdadeira ou falsa, entretanto, sua utilização está atrelada a instrução condicional if. No exemplo acima, exibe ok se existir o arquivo /bin/bash.

Outra forma:

if [ -x /bin/bash ] ; then
echo “ok”
fi

 

A instrução else é um “complemento” à estrutura if e determina o bloco de instruções a executar, caso a afirmação seja falsa.

if [ -x /bin/bash ] then;
echo “ok”
else
echo “ok”
fi

 

As principais opções para testes de condição de arquivos, utilizando o comando test

  • -r arquivo : tem permissão de leitura;
  • -w arquivo : tem permissão de gravação;
  • -x arquivo : tem permissão de execução;
  • -f arquivo: é um arquivo regular;
  • -d arquivo: é um diretório;
  • -u arquivo : seu bit set-user-ID está ativo;
  • -g arquivo : seu bit set-group-ID está ativo;
  • -k arquivo : seu sticky bit está ativo;
  • -s arquivo: seu tamanho é maior que zero.

Principais opções de avaliação de test para texto

  • n texto: Verdadeiro se o tamanho de texto for diferente de zero;
  • -z texto: Verdadeiro se o tamanho de texto for zero;
  • texto1 == texto2 : Verdadeiro se texto1 for igual a texto2;
  • texto1 != texto2: Verdadeiro se texto1 for diferente de texto2.

Avaliação para números

  • num1 -lt num2: verdadeiro se num1 for menor que num2;
  • num1 -gt num2: verdadeiro se num1 for maior que num2;
  • num1 -le num2: verdadeiro se num1 for menor ou igual a num2;
  • num1 -ge num2: verdadeiro se num1 for maior ou igual a num2;
  • num1 -eq num2: verdadeiro se num1 for igual a num2;
  • num1 -ne num2: verdadeiro se num1 for diferente de num2.

Pessoal, o assunto é vasto, mas devo ressaltar o quanto é importante a prática para massificar o conhecimento. Se você possui scripts que utilizam esse assunto na sua rotina de trabalho, estudo ou outros, envie no email ludolf@sejalivre.org para publicarmos neste quadro, assim você está colaborando para o aprendizado de outras pessoas.

entusiasta Linux, especialista em Autenticação Centralizada e Servidores de Arquivos, e Antigomobilista nas horas vagas. Deividson é um dos co-fundadores do Seja Livre, e atualmente é Editor de conteúdo e Consultor de Mídias Sociais do Blog Seja Livre.

Ver perfil