Scripting: Indicador de progeso
Bueeeno, como al final no os ha parecido una tontería el anterior post (al menos a un par de personas) os dejo también este indicador de progreso para vuestros scripts en bash. Fijaos en que la función calc ya la comenté en un post anterior. Básicamente a la variable OPERATIONS le asignamos el número de operaciones a realizar, en este caso el número de ficheros existentes en un directorio. A la variable INCPROGRESS le asignamos el incremento de progreso que añadimos en cada operación, y dentro del bucle vamos sumando y mostrando el progreso. Debido a que bash parece que no se lleva muy bien con los números reales, al final del bucle el progreso estará a un 99′XX por ciento, por lo que podemos optar al final por limpiar la línea actual de la terminal y mostrar nuestro anhelado 100% de progreso
.
#!/bin/bash
function calc()
{
echo "scale=4; $@" | bc ;
}
PROGRESS=0.0
OPERATIONS=`ls $DIR | awk '{count++} END {print count}'`
INCPROGRESS=`calc 100.0/$OPERATIONS`
for i in `ls $DIR`
do
#Operación sobre $i
PROGRESS=`calc $PROGRESS+$INCPROGRESS`
echo -n -e "\rProgress: $PROGRESS %"
done
tput el1 #Limpia la línea
echo -n -e "\rProgress: 100%"
loading...

Últimos comentarios