- jue 22 enero 2015
- bash
- #linux, #bash, #script, #progressbar
Para copias de seguridad, envios de ficheros, envio de alertas,... En definitiva para cualquier tipo de tarea que siga unos pasos que nosotros queremos mostrar por pantalla en formato progressbar.
Se puede configurar para poder elegir los carácteres a mostrar. Los que muestra son un mero ejemplo.
#!/bin/bash
# @param $1 Total de acciones a realizar.
# @param $2 La posición donde se encuentra actualmente la barra dentro del total.
# @param $3 Información visible al final de la barra.
function progressBar(){
local total=$1
local charsExtra=40
let "charsExtra=$charsExtra-${#3}"
let "status=$2+1"
let "percentaje=$status*100/$total"
let "rest=100-$percentaje"
s=$(printf "%"$percentaje"s" "•")
r=$(printf "%"$rest"s")
e=$(printf "%"$charsExtra"s")
let "percentaje=$status*100/$total"
echo -ne "\r◘${s// /•}${r}◘ "$percentaje"% [Info] $3${e}"
}
#Ejemplo de uso
declare actions=( "init" "search" "search." "search.." "search..." "done" )
iTop=${#actions[@]}
for (( i=0; i<$iTop; i++ ));do
progressBar "$iTop" "$i" "LastAction:${actions[$i]}"
sleep 1
done