¿Requieres de una instalación o configuración de Linux o sus servicios?
¿Un desarrollo WEB empresarial a la medida?
¿Un curso o capacitación a la medida?
Revisa el sitio de SERVICIOS de LinuxTotal


Mostrar un reloj en la consola de texto (reloj.sh) 

Copyright © 2005-2024 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

Autor: Sergio González D.  

El siguiente script te presenta la manera de colocar un reloj (hora y fecha) en la parte superior derecha de una terminal de texto. Sobre todo es útil cuando estás en consolas "linux" (CTRL-ALT-F1 por ejemplo), es decir no terminales "xterm" que son las que se abren bajo un ambiente Xwindow.


reloj.sh

#!/bin/bash
#################################################################################################
# Copyright 2005-2024 Sergio González Durán (sergio.gonzalez.duran@gmail.com)
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre
# y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos
# de la GNU General Public License,
# Versión 3 o cualquiera O Posterior publicada por la Free Software Foundation.
#################################################################################################
# ************************* # reloj.sh # linuxtotal.com.mx # ************************* # 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 variable $cmd tiene la hora y fecha al momento con un formato espécifico (En este artículo de LinuxTotal.com.mx encuentras como formatear fechas), después con un echo -n -e se indica con la opción -n que no de un salto de línea y la opción -e se inicia una secuencia de escape '\033[' que también se puede indicar como '\E[' y el parámetro 's' indica guardar la posición actual del cursor.

Ahora hay que posicionar el cursor en el extremo superior derecho menos 19 caracteres, lo que mide la cadena 'HH:MM:SS AAAA-MM-DD' que es el valor de $cmd. Esto se logra con la opción cols del comando tput que como imaginarás es el total de columnas de la terminal. $C es el resultado de una operación aritmética '$((`tput cols` - 19))' que en bash se indica entre dobles paréntesis. Y se indica la posición con la opción cup que sus valores son 'renglón' 'columna', en este caso renglón 0 (la primera línea de la terminal) y columna lo que valga $C.

Las variables $COLOR y $NORMAL se explican en el código y después de imprimir en pantalla el conjunto de variables 'echo -n $COLOR$cmd$NORMAL' que respectivamente cambia a verde/invertido, hora y fecha, y regreso a texto normal, se reestablece el cursor a donde originalmente se encontraba, esto se logra con otra secuencia de escape y la opción uu que indica a la terminal reestablecer el cursor a la posición guardada previamente. Por último esperamos un segundo con sleep 1 y el ciclo se vuelve a ejecutar.


Para ejecutarlo establece sus permisos en 711 (chmod 711 reloj.sh) e inicialo asi:

$> ./reloj.sh &
[1] 9765
$>

Es importante ejecutarlo como proceso en background con la opción '&'. Esto te regresa el número de 'job' trabajo que es [1] y su PID, pero como cada segundo se ejecuta el comando, entonces el PID cambia todo el tiempo. Para terminar con el reloj.sh debes usar entonces su número de 'job':

$> jobs
[1]+  Running                 ./reloj.sh &
$> kill %1
[1]+  Terminado               ./reloj.sh
$>

Con un kill %1 que en este caso es el número de trabajo en background se termina la ejecucción del reloj. Más sobre el manejo de procesos en este artículo de LinuxTotal.com.mx

v



¿Requieres de una instalación o configuración de Linux o sus servicios?
¿Un desarrollo WEB empresarial a la medida?
¿Un curso o capacitación a la medida?
Revisa el sitio de SERVICIOS de LinuxTotal

LinuxTotal en:

Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.


Dona a través de paypal::


O a través de bitcoins:


14TNQv5wM3xkSv65gHGQ6s6f8yTZuFTohE
Más artículos de LinuxTotal

He actualizado con varios nuevos comandos la popular guía de LinuxTotal.com.mx, asi como he añadido enlaces en los comandos en l....


El muy usado comando man, que lo encuentras en cualquier distribucción de Linux, te permite leer las páginas del manual de otros....


Imaginémonos a la empresa "Pato, S.A." que ofrece a sus empleados y clientes el sitio http://www.pato.com/consulta, donde mediant....


Hay múltiples maneras de cometer errores (algunos muy graves y desastrosos) cuando se administran servidores GNU/Linux, conócelo....


En el artículo de LinuxTotal.com.mx sobre permisos se explica lo que es un archivo con permisos SUID o SGID, pueden ser potencial....


Archivos como el de configuración de samba /etc/samba/smb.conf suelen tener comentarios que explican o detallan la variable a con....


Si ya has usado la línea de comandos o shell de Linux por un tiempo, seguramente entonces, el comando date ya te es familiar, lo ....


Una tarea administrativa algo común, es eventualmente tener que añadir un nuevo disco duro (IDE) al o a los que ya se tienen, de....


EL espacio disponible en disco se determina con este comando built-in del sistema operativo Linux, df.....


En Linux hay diversas herramientas para empaquetar y comprimir archivos, tomando en cuenta que empaquetar es juntar dos o más arc....



Copyright © LinuxTotal.com.mx 2006-2024
info@linuxtotal.com.mx · linuxtotal.com.mx@gmail.com