shell-script-pt
[Top][All Lists]
Advanced

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]