Cronometro em shell

Publicado por Raimundo Alves Portela (última atualização em 30/09/2011)

[ Hits: 13.883 ]

Homepage: http://portelanet.com

Download cronometro.sh




Fiz para agradar a esposa, ela queria algo para controlar o tempo que fica estudando, como eu estava brincando com shell acabei topando fazer.

Com certeza existe algo algo mais útil, mais que mal tem né ;-)

Obs.: Não mede o tempo precisamente pois há a perda nos cálculos e demais comandos usados, mas para um ser humano é algo quase imperceptível, felizmente.

Agradeço ao @SMarcell que citou o stty no tópico http://www.vivaolinux.com.br/topico/Shell-Script/Capturar-teclar-quando-presionada, que usei para permitir capturar a entrada via telado sem pausar o script.

Espero que gostem.

  



Esconder código-fonte

#!/bin/bash
# cronometro em shell
# Desenvolvido por: Raimundo Portela - rai3mb@gmail.com
# Objetivo: Agradar a esposa, ela queria algo para controlar o tempo que fica 
# estudando, como eu estava brincando com shell acabei topando fazer.
# Deve ter algo mais útil, mais que mal tem né ;-)
# Obs.: Não mede o tempo precisamente pois ha a perda nos calculos e demais comandos
# para um ser humano é algo quase imperceptível, felizmente.
#------------------------------------------------------------------------------
s=00
m=00
h=00

tecla=""

function _tela() {
clear
echo "
--------------------------------------------------------------------------------
                                   o ~ o
                                 /   v   \\
                     ----------ooO------Ooo------------
                            [ Relógio Shell ]        "
printf "                                %02dh:%02dm:%02ds          " $h $m $s
echo -e "\n                            [ Viva o Linux! ]        
                     ----------------------------------
                                ^       ^
--------------------------------------------------------------------------------"
  echo ":: 'p' para pausar, 'c' para continuar e 's' para sair ::"
}

function _relogio() {
    _tela
  sleep 1
  s=$((s+1))
  [ $s -eq 60 ] && m=$((m+1)) && s=00
  [ $m -eq 60 ] && h=$((h+1)) && m=00
}

function _pausar() {
while :
do
    _tela
    sleep 1
    read tecla
    [ "$tecla" = "c" ] && clear && break
done
}

function _main() {

# Poe o terminal em modo especial de interpretacao de caracteres
stty -echo -icanon min 0

while :
do
    [ "$tecla" = "s" ] && break
    [ "$tecla" = "p" ] && _pausar
    _relogio
    read tecla
done

# Restaura o modo padrao
stty sane

exit 0
}
_main

Scripts recomendados

Um super limpador do sistema KDu

Remove linhas

Aplicando layer7 sem digitar uma linha de código sequer

Inserção de máquinas no banco de dados para controle interno

mkzeowmp - zeo mount point para PZP (python, zope e plone)


  

Comentários
[1] Comentário enviado por rainingblood em 30/09/2011 - 11:15h

uhahua daora!

[2] Comentário enviado por ismael_farias em 02/10/2011 - 21:42h

Script show de bola!

[3] Comentário enviado por albfneto em 03/10/2011 - 15:16h

Olha, cronômetro é util sim! , Favoritado.

[4] Comentário enviado por removido em 23/10/2011 - 19:53h

Gostei disso!
Vou usar bastante.

Favoritado também.

[5] Comentário enviado por mfrlinux em 06/01/2015 - 09:56h

Valeu, parabéns.

[6] Comentário enviado por Thunder_Brown em 09/04/2015 - 08:28h


Fiz o que acredito ser algumas melhorias, inclui a opção de reiniciar o cronometro para não ter que fechar o script e abir ele novamente segue o link do script com as melhorias https://www.dropbox.com/s/mhlx0gql716dra4/cronometro.sh?dl=0

[7] Comentário enviado por richards em 03/12/2018 - 09:16h

Olá Raimundo!
Muito bom o script!
Iremos usar aqui.

Abcs,
Ricardo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts