#DicasLPI – 105.2 – Editar e escrever scripts simples_parte 2

Share

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

if then else

Lembra do finalzinho do post 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” a estrutura if e determina o bloco de instruções a executar, caso a afirmação seja igual a falso.

if [ -x /bin/bash ] then;

echo “ok”

else

echo “ok”

fi

A seguir, 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.

Reflita:

” Liberdade é uma palavra que o sonho humano alimenta, não há ninguém que explique e ninguém que não entenda”

Cecília Meireles

Quer continuar por dentro das novidades do Blog Seja Livre? Siga o nosso perfil no TWITTER, curta a nossa página no FACEBOOK ou adicione o Blog Seja Livre nos seus círculos do GOOGLE+.