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