[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Erro usando o case
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Erro usando o case |
Date: |
Mon, 22 Jan 2007 18:59:15 -0200 |
Fala Nilo,
o problema deve ser na variável LC_COLLATE do sistema. Esta variável
determina de classificação dos patterns (caracteres coringa).
Para ver a explicação legal, faça man bash e uma vez lá, digite /LC_COLLATE
e dê um <enter>.
Seu problema dve ser resolvido se vc fizer LC_COLLATE=C
Eu faço esta atribuição no meu .bash_profile.
Abração e suShellso,
Julio
:wq
2007/1/22, Nilo Martins <address@hidden>:
>
> Olá pessoal, essa é minha primeira mensagem para a lista.
>
> 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.
> Não vejo nenhum problema no script. Será alguma configuração do meu bash?
>
> Um detalhe interessante quando abro o arquivo para editar no gedit ele
> marca
> o "z" menúsculo do case com uma cor diferente.
>
> Agradeço qualquer ajuda.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]