Cronometro em shell
Publicado por Raimundo Alves Portela (última atualização em 30/09/2011)
[ Hits: 13.827 ]
Homepage: http://portelanet.com
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.
#!/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
Gerenciamento de software e hardware de desktop
Biblioteca de funções de manipulação de arquivos CSV para shell script
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
Sem espaço na partição home (2)
O que você está ouvindo agora? [2] (190)
Procrastinação e autossabotagem são problemas muito comuns na sociedad... (5)