Cronometro em shell

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

[ Hits: 13.472 ]

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

Criar usuários com ponto (nome.usuario) no Slackware

bash: função para validação de IP (IPv4)

Envio de backps de bancos por ftp com notificação por email

Script para conectar a um servidor ssh

rc.mailMyIp - Informa seu IP externo para o Gmail


  

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 rrodrigues345 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