Buscar

Aula4 de programação para servidores

Prévia do material em texto

PROGRAMAÇÃO PARA 
SERVIDORES
Prof. M. Sc. Isac Ferreira
isacfernando@gmail.com
Roteiro
• if then else
• test
• and, or, && e ||
• case
if then else
if <comando> se <comando> ok ($?=0)
then então
<comando> execute
<comando> estes comandos
else senão ($? ≠ 0)
<comando> Execute
fi Fim do teste condicional
Exemplo 1
#!/bin/bash
if who | grep $1
then
echo $1 esta logado
else
echo $1 nao esta logado
fi
Exemplo 2
#!/bin/bash
if who | grep $1 > /dev/null
then
echo $1 esta logado
else
echo $1 nao esta logado
fi
Exemplo 3
#!/bin/bash
if expr $1 + 1 > /dev/null 2> /dev/null
then
echo Eh um numero
else
echo Nao eh um numero
fi
Test
if test <expressão> se <expressão> ok ($?=0)
then então
<comando> execute
<comando> estes comandos
else senão ($? ≠ 0)
<comando> Execute
fi Fim do teste condicional
Exemplo 1
#!/bin/bash
resp=$1
if test $resp = N
then
echo Nao eh possivel
else
if test $resp = S
then
echo Eh possivel
else
echo Esta na duvida
fi
fi
Exemplo 2
#!/bin/bash
resp=$1
if test “$resp” = N
then
echo Nao eh possivel
elif test “$resp” = S
then
echo Eh possivel
else
echo Esta na duvida
fi
Exemplo 3
#!/bin/bash
if test $# = 0
then
echo faltou parametro
exit 1
fi
resp=$1
if test “$resp” = N
then
echo Nao eh possivel
elif test “$resp” = S
then
echo Eh possivel
else
echo Esta na duvida
fi
exit 0
Teste para arquivos
• -r arquivo – permissão de leitura
• -w arquivo – permissão de gravação
• -x arquivo – permissão de execução
• -f arquivo – arquivo regular
• -d arquivo – diretório
• -s arquivo – tamanho é maior que zero
Exemplos
• test -f arquivo && echo $?
• test -r arquivo && echo $?
• test -w arquivo && echo $?
• test -x arquivo && echo $?
• test -s arquivo && echo $?
Test com cadeias
• -z cad – o tamanho de cad é zero
• -n cad – o tamanho de cad é diferente de zero
Exemplos
• nada=
• test -z “$nada” && echo $?
• test -n “$nada” && echo $?
• test $nada && echo $?
• nada=algo && echo $nada
• test $nada && echo $?
Operandos do test para inteiros
• int1 -eq int2 => int1 igual a int2
• int1 -ne int2 => int1 diferente de int2
• int1 -gt int2 => int1 maior que int2
• int1 -ge int2 => int1 maior ou igual a int2
• int1 -lt int2 => int1 menor que int2
• int1 -le int2 => int1 menor ou igual a int2
Exemplo
• var=10
• test “$var” -eq 10 && echo $?
• test “$var” = 100 && echo $?
• [ “$var” -eq 100 ]
• echo $?
• [ “$var” = 10 ]
• echo $?
and
if [ “$sexo” = 1 ]
then
homens=`expr $homens +1`
else
mulheres=`expr $mulheres +1`
fi
and
if [ “$sexo” != 1 -a “$sexo” != 2]
then
echo Sexo invalido
exit 1
fi
if [ “$sexo” = 1 ]
then
homens=`expr $homens +1`
else
mulheres=`expr $mulheres +1`
fi
or
if [ “$sexo” -lt 1 -o “$sexo” -gt 2]
then
echo Sexo invalido
exit 1
fi
if [ “$sexo” = 1 ]
then
homens=`expr $homens +1`
else
mulheres=`expr $mulheres +1`
fi
&&
• a=“Eu sou a variavel a”
• b=“sou a outra”
• echo $a && echo $b
• ls -l xxx && echo $a
||
• echo $a || echo $b
• ls -l xxx || echo $a
Outras expressões
• cadeia1 != padrao - Verifica se cadeia1 difere padrão
• cadeia1 < padrao - Verifica se cadeia 1 vem antes 
• cadeia1 > padrao - Verifica 
• expr1 && expre2 - ambos tem q ser verdadeiros
• expr1 || expre2 - se um ou outro é verdadeiro
Exemplo
H=13
[ [ $H == [0-9] || $H == 1[0-2] ] ] || echo Hora errada
Case
case valor in
padrao1)
<comando>
<comando>
;;
padrao2)
<comando>
<comando>
;;
esac
Exemplo – Começa a Complicar
#!/bin/bash
erro=0
if [ “$#” -ne 1 ]
then
echo “Erro -> Uso $0 caracter”
erro=1
fi
case $1 in
*) echo “Erro -> Parametro passado soh pode ser caracter”
erro=2;;
esac
Continuação
if [ “$erro” -ne 0 ]
then
exit $erro
fi
case $1 in
[a-z]) echo Letra Minuscula ;;
[A-Z]) echo Letra Maiuscula ;;
[0-9]) echo Numero;;
*) echo Caracter Especial;;
esac
Exercicios
1. Fazer um script que imprima horas e minutos no 
formato 12 horas (ex. 7:00 am/pm)
2. Escreva um script que dê bom dia, boa tarde ou boa 
noite, de acordo com a hora apresentada pelo comando 
date.

Continue navegando