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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Horas em segundos


From: opa
Subject: Re: [shell-script] Horas em segundos
Date: Fri, 23 Apr 2004 22:25:14 -0300 hrN

Marco, lembrei agora:

Fiz há um tempo uma rotina para medir o intervalo de tempo entre 
dois pontos de um script em execução.  Faz tempo que não uso acho 
que por isso escapou. Mas como ele mostra o intervalo em hh:mm:ss 
acho que vai ser ótimo para você dar um "look".

root:~# ls -l /sh/time
-rw-r--r--    1 root     root          432 Jun 21  2003 /sh/time

Veja que não está executável porque é para ser rodado no próprio 
shell a ser mensurado.

root:~# cat /sh/time
# Escreve a diferenca de tempo entre a chamada par e a impar
# Uso ". /sh/time ; (operacoes...) ; . /sh/time" [ $1=s saida em segundos ]

if [ "$TimE" = "" ];then
 TimE=`date "+%s"`
else
 TimE=$((`date "+%s"`-$TimE))
 TimEh=$(($TimE/3600))
 if [ "$1" = "s" ];then
  echo $TimE
 else
  TimE=$(($TimE-($TimEh*3600)))
  TimEm=$(($TimE/60))
  TimE=$(($TimE-$TimEm*60))
  echo $TimEh"h":$TimEm"m":$TimE"s"
 fi
 unset TimE TimEh TimEm
fi
root:~#


É o mesmo esquema do que te passei abaixo.
Vide o resultado em operação:

root:~#  . time
   Dei um tempo ...
root:~#  . time
0h:1m:56s
root:~# 

Espero que ajude!

----------------------------------------------------------------
>From: Claudio <address@hidden>
>Date: Fri, 23 Apr 2004 19:11:22 -0300
>
>Voce pode converter as horas assim:
>
>converta a data inicial assim:
>
>date -d 'Fri Apr 23 18:33:00' +%s
>
>but3k4@slack:~$ date -d 'Fri Apr 23 18:33:00' +%s
>1082755980
>
>converta agora a data final:
>
>but3k4@slack:~$ date -d 'Fri Apr 23 18:53:00' +%s
>1082757180
>
>Pegue o resultado da data final e diminua pela data inicial:
>
>but3k4@slack:~$ echo 1082757180-1082755980 | bc
>1200
>
>depois divida este valor por 60:
>
>but3k4@slack:~$ echo 1200/60 | bc  
>20
>
>pronto, agora voce tem o valor em minutos de quando tempo o cara ficou 
>logado. Dae em diante eh so fazer o script.
>
>qualquer coisa, eu te ajudo a fazer.
>
>:D
>
>
>
>opa escreveu:
>
>>Acho que a string para o date não pode ser em segundos???
>>
>>Lembro-me vagamente que já senti necessidade de algo parecido e 
>>não pude contar com o "date".
>>
>>Talvez isto possa ajudar!?
>>
>>var_percorrido=3009
>>var_percorrido_human=$[var_percorrido/60]
>>residuo=0$[$var_percorrido-$var_percorrido_human*60]
>>var_percorrido_human=$var_percorrido_human:${residuo#${residuo%??}}
>>echo var_percorrido=$var_percorrido
>>echo var_percorrido_human=$var_percorrido_human
>>
>>
>>----------------------------------------------------------------
>>  
>>
>>>From: Marco Sinhoreli <address@hidden>
>>>Date: Fri, 23 Apr 2004 11:21:52 -0300
>>>
>>>Opa :-)
>>>
>>>Consegui com o comando date transformar as horas atuais em segundos:
>>>var_inicio=$(date +%s) # Esta var eh setada no inicio do questionário
>>>
>>>Em cada questão estou verificando o tempo percorrido...
>>>var_percorrido=$[ `date +%s` - $var_inicio ]
>>>
>>>.... e o restante para a concusão considerando o teto em 1 hora...
>>>var_termino=$[ 3600 - $var_percorrido ]
>>>
>>>....finalizando se var_termino estrapolou
>>>[ $var_termino -le 0 ] && comandos...
>>>
>>>
>>>Ai me veio outro problema
>>>Transformar $var_ver e $var_termino em MM:SS
>>>Tentei isso e não resolveu  :-(
>>>
>>>var_percorrido_human=$(date -d "00:$var_percorrido" "+%T")
>>>var_termino_human=$(date -d "00:$var_termino" "+%T")
>>>
>>>Em Sex, 2004-04-23 às 10:47, opa escreveu:
>>>    
>>>
>>>>Dispensando o cron, vou passar mais ou menos uma filosofia que 
>>>>me parece apropriada.
>>>>
>>>>Quando seu script de avaliação inicia ele pode chamar outro em 
>>>>segundo plano que recebe o PID do primeiro e salva a hora em 
>>>>uma variável. Ao encerrar o tempo poderia gravar a hora em um 
>>>>arquivo de log do candidato, ou geral, se você tiver interesse.
>>>>
>>>>O script em segundo plano, com um simples sleep de 55m  poderia 
>>>>avisar o candidato em seu terminal, que restam 5 minutos para 
>>>>o final.
>>>>
>>>>Poderia tentar atualizar o tempo em algum ponto da tela
>>>>minuto a minuto com sleeps, mas daí já acho isso pouco técnico e 
>>>>seria melhor outra forma de faze-lo, que desconheço.
>>>>
>>>>Após um novo sleep, agora de 5m, uma mensagem é enviada para a 
>>>>tela e o script do candidato recebe um kill. Daí você poderia 
>>>>passar para um log tudo o que desejar, antes desse script de 
>>>>segundo plano terminar.
>>>>
>>>>
>>>>
>>>>----------------------------------------------------------------
>>>>      
>>>>
>>>>>From: Marco Sinhoreli <address@hidden>
>>>>>Date: Fri, 23 Apr 2004 09:20:03 -0300
>>>>>
>>>>>Olá pessoal,
>>>>>
>>>>>Tenho um shell script para uma avaliação de conhecimento em inform
>>>>>        
>>>>>
>>>ática
>>>    
>>>
>>>>>de alguns alunos aqui do Centro Público para serem contratados como
>>>>>monitores nas Escolas Municipais.
>>>>>
>>>>>Esta avaliação será aplicada sendo que o aluno tem no máximo 1 h
>>>>>        
>>>>>
>>>ora para
>>>    
>>>
>>>>>a sua conclusão. Eu gostaria de inserir isso no shell script da seguin
>>>>>        
>>>>>
>>>te
>>>    
>>>
>>>>>maneira:
>>>>>
>>>>>Localizar a hora inicial em segundos.
>>>>>Localizar a hora durante o percurso da avaliação para informar tempo
>>>>>percorrido, tempo para finalização e se foi alcançado o teto máx
>>>>>        
>>>>>
>>>imo
>>>    
>>>
>>>>>permitido chamar uma função avisando sobre o termino da avaliaçã
>>>>>        
>>>>>
>>>o.
>>>    
>>>
>>>>>ps:
>>>>>Pontos interessantes neste modelo de avaliação:
>>>>>É todo feito em shell script com o uso do Xdialog e não existe a
>>>>>possibilidade de rodar outros aplicatívos (passiveis da famosa cola :-
>>>>>        
>>>>>
>>>)
>>>    
>>>
>>>>>no ambiente gráfico pois no momento do login pelo GDM o aluno selecion
>>>>>        
>>>>>
>>>a
>>>    
>>>
>>>>>como gerenciador de janelas o aplicatívo de avaliação e com as dic
>>>>>        
>>>>>
>>>as de
>>>    
>>>
>>>>>ontem as questóes nunca (ou quase nunca) são na mesma ordem.
>>>>>
>>>>>[]s
>>>>>
>>>>>Marco Sinhoreli 
>>>>>        
>>>>>
>>
>>
>>
>>
>>---------------------------------------------------------------------
>>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: address@hidden
>>---------------------------------------------------------------------
>>Esta lista é moderada de acordo com o previsto em 
>>http://www.listas-discussao.cjb.net
>>---------------------------------------------------------------------
>> 
>>Links do Yahoo! Grupos
>>Para visitar o site do seu grupo, acesse:
>> http://br.groups.yahoo.com/group/shell-script/
>>
>>Para sair deste grupo, envie um e-mail para:
>> address@hidden
>>
>>O uso que você faz do Yahoo! Grupos está sujeito aos:
>> http://br.yahoo.com/info/utos.html 
>>
>>
>>
>>  
>>
>
>
>
>---------------------------------------------------------------------
>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: address@hidden
>---------------------------------------------------------------------
>Esta lista é moderada de acordo com o previsto em 
>http://www.listas-discussao.cjb.net
>---------------------------------------------------------------------
>
>Links do Yahoo! Grupos
>Para visitar o site do seu grupo, acesse:
>http://br.groups.yahoo.com/group/shell-script/
>
>Para sair deste grupo, envie um e-mail para:
>address@hidden
>
>O uso que você faz do Yahoo! Grupos está sujeito aos:
>http://br.yahoo.com/info/utos.html 
>




reply via email to

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