[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Limitar o número de caracteres lido pelo READ
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Limitar o número de caracteres lido pelo READ |
Date: |
Tue, 20 Jul 2010 11:13:20 -0300 |
Se vc estiver usando bash é muito simples. Troque tudo que vc fez, por:
read -n8 -p "Data: " dat
[[ $dat =~ ^[12][0-9]{3}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$ ]] || echo
Erro: A data deve ser no formato AAAAMMDD
Pronto taí, já com a crítica e tudo. A data digitada estará na variável
$dat.
Se vc estiver usando o ksh, sua vida será complicada, pois vc terá de ler
char a char e ir concatenando-os para formar a data mas antes terá de ver se
não foi teclado seta ou algo do gênero.
Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- SE turma de Shell/Zenity em 26/07 - address@hidden
- SP turma de Shell em 14/08 - www.4Linux.com.br
- Turmas fechadas em outras cidades ligue (21)8112-9988.
Em 20 de julho de 2010 09:55, Édnei Rodrigues <
address@hidden> escreveu:
>
>
> Bom dia pessoal.
> Estava fazendo uns testes e , na necessidade, queria que o usuário
> tivesse a liberdade de digitar somente 6 caracteres:
>
> ####Inicio do script####
>
> clear
> tput cup 2 10; echo "insira a data"
> tput cup 2 24; read data
> ## aqui começa a minha dúvida como delimitar a data digitada em apenas
> 6números e quando o usuário preencher os 6 numeros não conseguir
> inserir mais nenhum outro valor/digito? Consigo fazer isto em shell
> script?
>
> eu vi que, dando um read --help no terminal, ele tem alguns parâmetros
> como -n e -N ou -d. No entanto, eles não funcionam no script, dando
> erro de illegal option.
>
> Sabem de algum segredo ? No google ou no man, não existe esse parâmetro!
>
> Obrigado pela ajuda.
>
>
[As partes desta mensagem que não continham texto foram removidas]