LinuxParty
Estos son algunos ejemplos de scripts de cuenta atrás para Linux que podrás usar...
Este ejemplo, no es una cuenta atrás, sino una cuenta hacia adelante.
date1=`date +%s`; while true; do echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r"; done
Este es un script completo que sólo muestra en la parte superior derecha siempre, la hora...
#!/bin/bash ################################################################################### # Se concede permiso para copiar, distribuir y/o modificar este programa siempre # y cuando se cite al autor y la fuente de linuxparty.es y según los términos # de la GNU General Public License, Versión 3 o cualquiera # posterior publicada por la Free Software Foundation. #################################################################################### # ************************* # reloj.sh # https://www.linuxparty.es # ************************* if [ "$1" == "--ahora" -o "$1" == "-ahora" ] ; then date +%H:%M:%S exit 0 fi
# dentro de un ciclo sin condiciones se ejecuta el script while : do # se formatea la hora y la fecha como la veremos en pantalla cmd=`date +"%H:%M:%S %F"` # se guarda la posición actual del cursor echo -n -e "\033[s" # estas dos líneas puedes descomentarlas y su resultado es que la línea superior de la consola # siempre estará limpia, solo el reloj, pero causa parpadeo #tput cup 0 0 #tput el # se calcula el total de columnas de la terminal o consola y se posiciona el cursor en esa # posición menos 19 caracteres que es lo que mide 'HH:MM:SS AAAA-MM-DD' C=$((`tput cols` - 19)) tput cup 0 $C # establecemos el color del reloj en verde invertido # setaf 2 = verde, smso = invertido COLOR=`tput setaf 2; tput smso` # se regresa a texto normal, sino todo saldría verde NORMAL=`tput sgr0` # mandamos a la pantalla la variable con la fecha y hora junto con los cambios de color echo -n $COLOR$cmd$NORMAL # se reestablece el cursor a donde se encontraba originalmente echo -n -e "\033[u" # el ciclo se ejecuta cada segundo sleep 1 done
La aplicación deberá ejecutarla como...
hora &
Este es un ejemplo real de cuenta atrás...
seconds=20; date1=$((`date +%s` + $seconds)); while [ "$date1" -ge `date +%s` ]; do echo -ne "$(date -u --date @$(($date1 - `date +%s` )) +%H:%M:%S)\r"; done
También puede utilizar esta discreta línea, para esto.
for i in `seq 60 -1 1` ; do echo -ne "\r$i " ; sleep 1 ; done
