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: [EMAIL PROTECTED] > --------------------------------------------------------------------- > 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.programming.shell.brazil > > Links do Yahoo! Grupos > _______________________________________________________________________________
