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.







