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 - [email protected]
- 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 <
[email protected]> 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]



------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [email protected]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [email protected]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a