Cuando escribes scripts en bash acostumbras a hacerlo todo simple, sin embargo hay ocasiones en las cuales quieres tener un mayor control de la salida del programa. Una de las herramientas que sirve para este propósito es tput que viene por defecto instalado con ncurses, en muchas distribuciones ncurses viene instalado por defecto, asi que no debería ser problema.
La idea de usar tput es poder controlar de una forma sencilla distintos aspectos de tu terminal y hacer algunas cosas divertidas como dar formato y poner texto en negritas o de colores por citar un ejemplo, a continuación daré una lista de usos para tput que para mí resultaron especialmente útiles.
Limpiar pantalla
# tput clear
ejemplo:
echo "Este mensaje no lo veras"; tput clear; echo "Este mensaje si lo veras"
Para saber el número total de líneas que tiene tu consola actual
# tput lines
Para sabe el número total de columnas
# tput cols
Mover el cursor a una posición específica
# tput cup 15 20
Para poner un mensaje en negrita
# tput bold
ejemplo:
tput bold; echo "mensaje en negrita"
Para saber cuántos colores soporta tu consola usamos
# tput colors
Usar colores para el texto y el fondo, este me gusta bastante porque te evita tener que usar secuencias de escape ANSI.
Para poner texto de color rojo usamos
# tput setaf 1
Para poner background de color verde usamos
# tput setab 2
Les dejo 2 scripts para que vean la lista de colores básicos 🙂
for i in `seq 1 7`; do tput setaf $i; echo "Este es el color $i"; done
for i in `seq 1 7`; do tput setab $i; echo "Este es el color $i"; done
Si quieres usar más colores entonces vas a tener que especificarlo ejecutando
export TERM=xterm-256color ; reset
Si vuelves a ejecutar tput verás que ahora ya tienes soporte para 256 colores
# tput colors
Hint: cambia el script que puse arriba y en vez de 7 ponle 255 para que tengas toda la lista de colores
Si quieren ocultar el cursor pueden ejecutar
# tput civis
Para volver el cursor a su estado normal
# tput cnorm
AHora veremos unas funciones de formato, si por algún motivo quieren quitar el formato
# tput sgr0
Un reseteo general de toda la consola se hace con reset
# tput reset
Para subrayar texto
# tput smul
Para quitar subrayado
# tput rmul
ejemplo
tput smul; echo "texto subrayado"; tput rmul
Para hacer que el texto tintilee (blink)
# tput blink
ejemplo
tput blink; echo "blink blink blink"
No se olviden de # tput sgr0 para quitar el blink
Finalmente les dejo el enlace con algunos scripts de ejemplo hechos en bash
https://github.com/cvillegas/bash
Espero que les sea de utilidad 🙂