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]