Cronometro em shell
Publicado por Raimundo Alves Portela (última atualização em 30/09/2011)
[ Hits: 13.472 ]
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
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
Agora temos uma assistente virtual no fórum!!! (247)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
redirecionando saida de comando touch para o AWK[AJUDA] (4)
Microfone do meu headset não é recinhecido. Meu notebook é um Acer Asp... (1)
iso de sistema 32 bit em atividade (18)