Ah, entendi o que eu estava errando. Realmente, o "read" precisa vir antes.
Julio, a tua solução é muito boa também e caiu como uma luva.
Agradeço demais as soluções e a atenção.
Abraços.
Obs.: Estou usando o bash.
Em 20 de julho de 2010 11:13, Julio C. Neves escreveu:
> Se vc estiver usand
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 MMDD
Pronto taí, já com a crítica e tudo. A data digitada estará na variável
$dat.
Se
No bash, o read tem o parametro -n
coloca no inicio do seu script #!/bin/bash que deve funcionar.
veja o exemplo:
liber...@liberiun-pc02:/$ bash
liber...@liberiun-pc02:/$ read -n1 -p "Digite uma letra:"
Digite uma letra:
liber...@liberiun-pc02:/$ dash
$ read -n1 -p "Digite uma letra:"
read: 1:
o read -n resolve
$ bash a.sh
insira a data 123456
data=123456
$ cat a.sh
clear
tput cup 2 10; echo "insira a data"
tput cup 2 24; read -n 6 data
echo -e "\n\ndata=$data"
entretanto vc pode ter algo no ambiente ou no interpretador que esta
atrapalhando.
2010/7/20 Édnei Rodrigues
>