Voy a iniciar una categoría de posts con todas las cosas raras que a veces descubro que se pueden hacer en bash. Esto me vale porque no tengo que estar luego buscando como se hacia tal o cual cosa.

El primer post tratará sobre el manejo de los atributos de los terminales. Comenzaremos con algo sencillo, y vistoso para tus scripts: una barra de progreso, que espero pueda servirte de inspiracion para otras cosas

El comando que hace la magia es /usr/bin/tput. El ejemplo es este. Está suficientemente comentado como para que se entienda. Como verán, hay dos magias: la primera es tput cols que te cuenta el numero de columnas del terminal. La segunda es tput el que hace un erase line.

#!/bin/bash

# contamos las columnas que tiene el terminal
COLS=`tput cols`

# contamos hacia abajo
for i in `seq $COLS -5 0`; do
# movemos cursor al principio
echo -ne "\r"
# borramos la linea
tput el
# presentamos "i" caracteres "#"
for j in `seq 1 $i`; do echo -n "#"; done
# esperamos 1 segundo
sleep 1
done

Anuncios