sábado, 28 de março de 2009

Dica: utilizando IFs

Os fórums na internet estão cheios de postagens de pessoas que os seus testes de condição não funcionam.
Primeiro comentário é: vejam se estão utilizando o mesmo shell que os exemplos que estão pegando. (os exemplos que temos nessa postagem usam #ksh)
Segundo, tomem cuidado com os espaços entre os colchetes, comandos e operadores. Nos shell scripts eles fazem diferença sim.
Também tomem cuidado que para cada tipo de comparação deve-se utilizar sintaxes diferentes.
Segue abaixo alguns exemplos (que funcionam!):

if ! [ -e $DIRFALHA ]; then

fi
O exemplo acima serve para verificar se um diretório existe. Notem que o exemplo acima faz uma negação do if com o caracter: !

if [ "$QTDEINSERIDA" = "0" ] ; then

fi
O exemplo acima compara se o valor da variável é igual a "o". Caso seja, ele executará o comando escrito entre a linha da cláusula é o "fi" que indica o término do documento. Essa sintaxe acima somente serve para comparar strings.


if [[ `ls -la /tmp wc -l` -le 10 ]]; then

fi
Para comparar valores numéricos deve-se usar a sintaxe acima. Notem que a cláusula está entre 2 colchetes e não 1 e o operador é uma expressão literal. Nesse caso acima ele está vendo se no diretório /tmp do linux tem menos ou 10 arquivos. Se quisessem comparar com 10 ou mais seria "-ge". Caso queiram saber todos os operadores, vejam no manual do IF digitando "man if" no linux.

Caso tenham algum IF que esteja com problema ou queiram tirar alguma dúvida... fiquem a vontade...

Nenhum comentário:

Postar um comentário