Isto está certo ??

1. Isto está certo ??

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 11/11/2018 - 15:56h

Pessoas, criei uma validação de entrada horas aqui, gostaria de saber se a fiz certo
egrep -q '^([0-9]{2,}):([0-5][0-9]):([0-5][0-9])$' 


Outra coisa, ela vai ficar em uma função .que vai ser chamada varias vezes para validar N variáveis, como faço o "echo" ???


VALID_HORA () {
if ! echo ??????? | egrep -q '^([0-9]{2,}):([0-5][0-9]):([0-5][0-9])$'
...
...
}
echo "Insira a hora"
read h1
VALID_HORA
...



  


2. Re: Isto está certo ??

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/11/2018 - 18:42h

Mauriciodez escreveu:

Pessoas, criei uma validação de entrada horas aqui, gostaria de saber se a fiz certo
egrep -q '^([0-9]{2,}):([0-5][0-9]):([0-5][0-9])$' 


Outra coisa, ela vai ficar em uma função .que vai ser chamada varias vezes para validar N variáveis, como faço o "echo" ???


VALID_HORA () {
if ! echo ??????? | egrep -q '^([0-9]{2,}):([0-5][0-9]):([0-5][0-9])$'
...
...
}
echo "Insira a hora"
read h1
VALID_HORA
...


Boa noite Mauricio.
Segue a REGEX para validar a Hora:Minutos
egrep --color '^((0|1)[0-9]|^2[0-3]):([0-5][0-9])$' <<< "$hora"
Função:
VALID_HORA() {
while :;do
read -p "Insira a hora no formato \"hh:mm\": " HORA
if egrep -q '^((0|1)[0-9]|^2[0-3]):([0-5][0-9])$' <<< "$HORA";then
echo "Hora: $HORA é válida"
break
else
echo "Hora:$HORA é Inválida"
fi
done
}

Teste:
for H in {00..25}:{00..99};do
egrep '^((0|1)[0-9]|^2[0-3]):([0-5][0-9])$' <<< $H;
done|wc
No laço "for", tô gerando um "relógio" de "00:00" até "25:99"
o egrep casa somente as horas válidas, logo, o wc mostra 1440 linhas,
24 horas X 60 minutos = 1440
Simplificando a Função:

VALID_HORA() {
read -p "Insira a hora no formato \"hh:mm\": " HORA
egrep -q '^((0|1)[0-9]|^2[0-3]):([0-5][0-9])$' <<< "$HORA" && echo "Hora: $HORA é válida" || { echo "Hora:$HORA é Inválida";VALID_HORA;}
}


Abç.:
Marcelo Oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts