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 <[EMAIL PROTECTED]> escreveu: De: Julio C. Neves <[EMAIL PROTECTED]> Assunto: Re: [shell-script] Dúvida "Script que marca hora"? Para: [email protected] 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 <[EMAIL PROTECTED] 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]
