Bom dia galera,

On 08/25/2010 10:25 AM, jrsreis wrote:
>  
>
> Olá pessoal
>
> Aproveitando a dica de vocês, eu fiz o seguinte script para entrar com
> nome:
>
> echo -n "Entre com nome: "
> read NOME
>
> if [ -z $NOME ]
> then
> echo "Nome não informado!"
> else
> echo "$NOME" | sed -r 's/\b[a-z]+/\u&/g'
> fi
>
> Como faço para tratar a variável nome para aceitar somente letras e
> espaços
>

Você pode fazer um teste depois do read, ou seja, você guarda o input
numa variável qualquer e depois a testa com o 'egrep'.

if echo $NOME | egrep '[0-9]' 2>&1 >/dev/null
then
  esta variavel tem um numero
else
  esta variavel nao tem numeros
fi

Já para verificar se há letras:
echo $FONE | egrep -i '[a-zA-Z]'

Se você quiser tirar as letras de uma variável, use o 'sed' com seu
subcomando de substituir letras/palavras, dessa forma:

tFONE=`echo $FONE | sed -e 's/[a-zA-Z]//g'`

Lembrando que o conteúdo escrito dentro de colchetes (o caracter '[' e
']') é uma expressão regular que nesse caso indica que tipo de caracter
voce quer buscar.

Espero ter ajudado,
Mulatinho.

> O outro é o seguinte:
>
> echo -n "Entre com telefone: "
> read FONE
>
> if [ -z $FONE ]
> then
> echo "Telefone não informado!"
> else
> echo "$FONE"
> fi
>
> Nesse caso, gostaria que aceitasse somente número, com o caracter "-"
>
> Exemplo:
> Aceitar
> 22-123456
> 21-456123
>
> Negar
> aa123
> aa-452
>
> Obrigado
>
-- 
Alexandre Mulatinho
Analista de Suporte/Sistemas
Blog: http://mulatinho.wordpress.com 
Mail: a...@mulatinho.net
Fone: +55 81 92781715



[As partes desta mensagem que não continham texto foram removidas]

Responder a