[Ubuntu-BR] Problema com script shell
Nilo Martins
jniloms em gmail.com
Segunda Janeiro 22 20:48:12 UTC 2007
Obrigado pela ajuda.
o [:lower:] e o [:upper:] funcionaram perfeitamente.
Porém aqui na minha máquina continua dando erro mesmo quando coloco o A-Z na
frente do a-z, desta vez o z minúsculo fica mostrando mensagem que é
maiúsculo. !?!? e o detalhe quando abro o texto no gedit ele coloca o "z" de
uma cor diferente como se fosse o atributo de algum comando. !!?!? fica [a-z]
??!!
2007/1/22, hamacker <sirhamacker em gmail.com>:
>
> Onk Donk.
>
> É terrivel encontrar exemplos que não funcionam, não é mesmo ?
> Chega a ser frustante, eu sei como é isso e não vou negar ajuda.
>
> É o seguinte a-z e A-Z tem algumas precedencias, por exemplo A-Z
> sempre estará no grupo entre a-z, mas não o inverso, assim se voce
> modificar a precedencia como :
> case "$1" in
> ["A-Z"]) echo Letra Maiuscula
> ;;
> ["a-z"]) echo Letra Minuscula
> ;;
> [0-9]) echo Numero
> ;;
> *) echo Caracter Especial
> ;;
> esac
>
> funcionará. Isso tem a ver precedencias não muito documentadas. Mas a
> verdade é que no bash voce tem lower e upper justamente para esse
> proposito. Quem sou eu para julgar o trabalho do Julho, mas o exemplo
> ficaria melhor assim :
> case "$1" in
> [[:lower:]] ) echo "Letra Minuscula";;
> [[:upper:]] ) echo "Letra Maiuscula";;
> [0-9] ) echo "Digito Numerico";;
> * ) echo "Caracter Especial";;
> esac
>
> Use sempre aspas nos echos e ";;" é porque voce terminou uma sentença
> do case. Se cada opção do seu case..in tivesse mais de duas linhas, a
> ultima linha é que deveria ter um ";;". Isso é apenas para explicar
> melhor.
>
> []'s e sucesso no seu aprendizado.
>
> 2007/1/22, Nilo Martins <jniloms em gmail.com>:
> > Estou iniciando meus estudo de shell script e comprei o livro
> Programação
> > Shell Linux (de Julio Cezar Neves) para facilitar esta tarefa.
> >
> > Neste livro tem um exemplo que está dando erro aqui no meu Ubuntu.
> >
> > O código é o seguinte: (testchar.sh)
> >
> > #
> > # Testa qual o tipo de um caracter recebido por parametro
> > #
> >
> > ##### Teste da Quantidade de Parametros #####
> > erro=0
> > if [ "$#" -ne 1 ]
> > then
> > echo "Erro -> Uso: testchar caracter"
> > erro=1
> > fi
> >
> > ##### Testa se o 1o. parametro tem o tamanho de um caracter #####
> > case $1 in
> > ?) ;;
> > *) echo "Erro -> Parametro passado tem mais de um caracter"
> > erro=2
> > ;;
> > esac
> >
> > ##### Se houve erro o programa termina, passando o codigo do
> erro #####
> > 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
> > exit 0
> >
> > O problema é que quando executo:
> > $ ./testchar.sh A
> > Letra Minuscula
> > ------------------- > Como vocês viram deveria aparecer a mensagem Letra
> > Maiúscula e não Minúscula.
> >
> > Um detalhe interessante quando abro o arquivo para editar no gedit ele
> marca
> > o "z" minúsculo do case com uma cor diferente.
> >
>
> --
> ubuntu-br mailing list
> ubuntu-br em lists.ubuntu.com
> www.ubuntubrasil.org
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-br
>
More information about the ubuntu-br
mailing list