Autor Tópico: (Resolvido)Calculo de tempo em shell Script  (Lida 8164 vezes)

Offline Andreson Goveia

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.985
  • Kubuntu 14.10
    • Ver perfil
(Resolvido)Calculo de tempo em shell Script
« Online: 27 de Julho de 2010, 04:18 »
Galera é o seguinte, estou tentando ajudar um colega de trabalho a fazer um script que de o tempo da subtração de duas variáveis de tempo.
nelas tenho o tempo inicial (ex: 10:05:20) e a final (ex: 13:25:20)

neste caso acima o resultado teria que dar 03:20:00 certo?
agora como poderia fazer isso em shell script?
Lembrando que são duas variáveis de tempo que são retirada de outro arquivo (essa parte já consegui e funicona certinho).

Desde de já agradeço a atenção de vocês.

[]s.
Andreson
« Última modificação: 10 de Dezembro de 2010, 22:51 por Andreson »

Offline sistematico

  • Usuário Ubuntu
  • *
  • Mensagens: 576
  • Sistematico
    • Ver perfil
    • Sistematico.org
Re: Calculo de tempo em shell Script
« Resposta #1 Online: 27 de Julho de 2010, 06:12 »
Cola aqui o que você já fez que eu tento te ajudar.
Lucas Saliés Brum
Ubuntu User #27150
http://sistematico.org

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Calculo de tempo em shell Script
« Resposta #2 Online: 27 de Julho de 2010, 15:24 »
Eu só sei fazer isso na força bruta...
Código: [Selecionar]
#!/bin/bash

tmp1=10:05:20
tmp2=13:25:20

var11=`echo $tmp1 | cut -c 1-2`
var12=`echo $tmp1 | cut -c 4-5`
var13=`echo $tmp1 | cut -c 7-8`

var21=`echo $tmp2 | cut -c 1-2`
var22=`echo $tmp2 | cut -c 4-5`
var23=`echo $tmp2 | cut -c 7-8`

calc1=`echo $var21-$var11 | bc`
calc2=`echo $var22-$var12 | bc`
calc3=`echo $var23-$var13 | bc`

echo "$calc1:$calc2:$calc3"

exit 0
Como eu disse, força bruta.
fred@desktop:~/scripts$ ./teste.a
3:20:0
« Última modificação: 27 de Julho de 2010, 15:31 por bred81 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline Andreson Goveia

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.985
  • Kubuntu 14.10
    • Ver perfil
Re: (Resolvido)Calculo de tempo em shell Script
« Resposta #3 Online: 28 de Julho de 2010, 23:46 »
Valeu galera, mas o cara já resolveu, (mas não me explicou direito como). >:( >:(

Offline RafaelUnixubuntu

  • Usuário Ubuntu
  • *
  • Mensagens: 2
  • I Love Linux!
    • Ver perfil
Re: (Resolvido)Calculo de tempo em shell Script
« Resposta #4 Online: 10 de Setembro de 2010, 16:29 »
Bom o script do nosso amigo bred81 nao esta completo...pois eu precisava de algo que imprimisse na seguite formatação hh:mm:ss e o do nosso amigo não faz isso então depois de muita pesquiza consegui melhorar o codigo dele assim:
Código: [Selecionar]
#!/bin/sh
#Script para imprimir a diferença entre dois tempos (hh:mm:ss)

echo "Tempo inicial (hh:mm:ss)?"
read tmp1
echo "Tempo final (hh:mm:ss)?"
read tmp2

var11=`echo $tmp1 | cut -c 1-2`
var12=`echo $tmp1 | cut -c 4-5`
var13=`echo $tmp1 | cut -c 7-8`

var21=`echo $tmp2 | cut -c 1-2`
var22=`echo $tmp2 | cut -c 4-5`
var23=`echo $tmp2 | cut -c 7-8`

calc1=`echo $var11*3600 + $var12*60 + $var13 | bc`
calc2=`echo $var21*3600 + $var22*60 + $var23 | bc`
seg=$(($calc2 - $calc1))

min=$(($seg/60))
seg=$(($seg-$min*60))
hor=$(($min/60))
min=$(($min-$hor*60))


hora=`printf "%02d:%02d:%02d \n" $hor $min $seg;`

echo $hora
se você quiser apenas imprimir o ressultado e só substituir "hora=`printf "%02d:%02d:%02d \n" $hor $min $seg;`" por "printf "%02d:%02d:%02d \n" $hor $min $se"
mas no meu caso eu precisava do resultado declarado em uma variavel...espero que isso ajude alguem pois teria me ajudado...