Tag: bash

tput para mejorar tus scripts en bash

bash
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 🙂