Inicio > Programación, Scripting > Scripting: Indicador de progeso

Scripting: Indicador de progeso

Miércoles, 11 de noviembre de 2009 Dejar un comentario Ir a comentarios

terminal-icon

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 :P .

#!/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%"
GD Star Rating
loading...
Scripting: Indicador de progeso, 9.2 out of 10 based on 5 ratings
Share
  1. Sin comentarios aún.
  1. Sin trackbacks aún.