Baixe o app para aproveitar ainda mais
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.
Compartilhar