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:20:32 -0700 (PDT)

Reinaldo se voce colocar na linha de comando:
$ `sh -x hora 00:00`
terá como resultado hora valida, que seria o equivalente a: 24:00,
mas se desejar acrecentar 24:00 e só fazer as alterações sequintes:


#!/bin/bash
 

Hora=$1

# A hora começa com 00 à 19 ou de 20 à 23  e  termina  de :00 à 59
 #!/bin/bash

Hora=$1
if [[ $Hora =~ ([01][0-9]|2[0-3]):[0-5][0-9]|24:00 ]]
then
    echo Hora Certa
else
    echo Hora invalida
fi
################################################
ou

#!/bin/bash

H=$1

[[ $H = [01][0-9]:[0-5][0-9] || $H = 23:[0-5][0-9] || $H = 24:00 ]] && echo 
Hora valida || echo Hora invalida

# O problema é que: 00:00 continua sendo hora valida.




#############################################
--- Em seg, 15/9/08, jimmy <address@hidden> escreveu:
De: jimmy <address@hidden>
Assunto: Re: [shell-script] Dúvida "Script que marca hora"?
Para: address@hidden
Data: Segunda-feira, 15 de Setembro de 2008, 13:24










    
            testei o seu escript, não conhecia o uso na prática do '=~', achava 
que

só existia no perl e similares;



bom a única alteração que fiz foi na linha:



if [[ $Hora =~ "([01][0-9]| 2[0-3]):[ 0-5][0-9] " ]]



fechei a string de comparação entre aspas, e rodei os seus testes:



$ sh -x hora 23:00

+ Hora=23:00

+ [[ 23:00 =~ ([01][0-9]|2[ 0-3]):[0- 5][0-9] ]]

+ echo Hora Certa

Hora Certa



$ sh -x hora 23:59

+ Hora=23:59

+ [[ 23:59 =~ ([01][0-9]|2[ 0-3]):[0- 5][0-9] ]]

+ echo Hora Certa

Hora Certa



$ sh -x hora 24:00

+ Hora=24:00

+ [[ 24:00 =~ ([01][0-9]|2[ 0-3]):[0- 5][0-9] ]]

+ echo Hora Invalida

Hora Invalida



On Sat, Sep 13, 2008 at 09:51:24PM -0700, Klaus Jurgen Friedrich wrote:

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

> 

> 

> ------------ --------- --------- ------

> 

> ------------ --------- --------- --------- --------- --------- -

> 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: shell-script- unsubscribe@ yahoogrupos. com.br

> ------------ --------- --------- --------- --------- --------- -

> 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.programmi ng.shell. brazil

> 

> Links do Yahoo! Grupos

> 

____________ _________ _________ _________ _________ _________ _


      

    
    
        
         
        
        








        


        
        


      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]