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 <[EMAIL PROTECTED]>: > > 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]