[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Dúvida "Script que marca hora"?
From: |
Klaus Jurgen Friedrich |
Subject: |
Re: [shell-script] Dúvida "Script que marca hora"? |
Date: |
Thu, 18 Sep 2008 20:56:06 -0700 (PDT) |
Julio, Muito obrigado pela resposta, estou adorando o seu livro é de excelente
nível técnico, você demonstra profundo conhecimento em seu livro.
Fiz um excelente investimento.
--- Em sex, 19/9/08, Julio C. Neves <address@hidden> escreveu:
De: Julio C. Neves <address@hidden>
Assunto: Re: [shell-script] Dúvida "Script que marca hora"?
Para: address@hidden
Data: Sexta-feira, 19 de Setembro de 2008, 3:42
Fala Klaus,
Não consegui reproduzir o teu erro. Veja:
$ Hora=24:00
$ if [[ $Hora =~ ([01][0-9]|2[ 0-3]):[0- 5][0-9] ]]
> then
> echo Hora Certa
> else
> echo Hora Invalida
> fi
Hora Invalida
Mas já que vc me chamou a atenção, eu descobri uma bobeada minha. Execute o
script passando 310:112. Ele validará a hora como certa, pq encontrará a
cadeia 10:11 que casará com a expressão regular. Então o correto é colocar
âncoras, ficando assim:
$ if [[ $Hora =~ ^([01][0-9]| 2[0-3]):[ 0-5][0-9] $ ]]
> then
> echo Hora Certa
> else
> echo Hora Invalida
> fi
--
Abraços,
Julio
*Em setembro estarei dando um treinamento
Shell em São Paulo (em 2 fins de semana).
Mais informações: www.4linux.com. br
Tel: (11) 2125-4747*
2008/9/14 Klaus Jurgen Friedrich <klausjf@ymail. com>
> Eu estou aprendendo programação shell script e estou estudando o livro:
> Programação Shell Linux do Julio Cezar Neves.
>
> Encontrei uma questão que me gerou uma dúvida, que é um programa que
> informa
> se a hora é valida ou invalida.
>
> ############ ######### ######### ######### ########
>
> #!/bin/bash
>
> Hora=$1
>
> # A hora começa com 00 à 19 ou de 20 à 23 e termina de :00 à 59
> if [[ $Hora =~ ([01][0-9]|2[ 0-3]):[0- 5][0-9] ]]
> then
> echo Hora Certa
> else
> echo Hora Invalida
> fi
>
> Eu dei o nome de "hora" ao script, olhe o exemplo.
>
> $ ./hora 23:00
> Hora Certa
>
> $ ./hora 23:59
> Hora Certa
>
> Até aqui tudo bem, agora olhem isso.
>
> $ ./hora 24:00
> Hora Certa
>
> A hora só deveria começar com 00 e ir até 23, olhem isso.
> [01][0-9]|2[ 0-3]
>
> Porque quando eu coloquei 24:00 marcou "Hora Certa" se pela expressão só
> deveria ir até 23:59 e a meia noite marcar 00:00 ?
>
> Quando eu coloco de 24:01 em diante marca "Hora Invalida", ai tudo bem,
> está dentro da lógica.
>
> Agradeço antecipadamente a quem se dispor a esclarecer a minha dúvida..
>
> Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> cara @ymail.com ou @rocketmail. com.
> http://br.new. mail.yahoo. com/addresses
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
--
Abraços,
Julio
Em setembro estarei dando um treinamento
Shell em São Paulo (em 2 fins de semana).
Mais informações: www.4linux.com. br
Tel: (11) 2125-4747
[As partes desta mensagem que não continham texto foram removidas]
Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses
[As partes desta mensagem que não continham texto foram removidas]