Revision: 30798
Updated Code
at August 22, 2010 16:51 by ksaver
Updated Code
# snippet: progress_bar.sh
# version: 0.02
# author: ksaver (at identi.ca)
# license: http://creativecommons.org/licenses/BSD/
# sets: progress_bar function
# arguments: progress_bar function: optional arguments "Text" and width.
# "Text": Any informative text string.
# Width: An integer number, is the max width for the progress bar.
# usage: Use into a script:
# source progress_bar.sh
# a) progress_bar "Counting:" 25 <<< $PERCENT
# b) for i in {1..100}; do echo $i; sleep 1; done |progress_bar "" 20
# output: Counting: [ ============> ] 50%
function progress_bar()
{
while read PERCENT
do
COUNT=0
FOO='>'
BAR=''
CHAR='=' # Change by "#", "|" or any character.
TEXT=${1:-"Progress:"} # Sets default value to var $TEXT
WIDTH=${2:-40} # Sets default value to var $WIDTH
PROGRESS=$(($PERCENT*$WIDTH/100))
while [ $COUNT -lt $(($PROGRESS+1)) ]
do
printf "\r\t$TEXT [ %s%s ] $PERCENT%% " ${BAR} ${FOO}
BAR="${BAR}$CHAR"
COUNT=$(($COUNT+1))
done
done
echo " Done."
}
Revision: 30797
Updated Code
at August 22, 2010 16:46 by ksaver
Updated Code
# snippet: progress_bar.sh
# version: 0.02
# author: ksaver (at identi.ca)
# license: http://creativecommons.org/licenses/BSD/
# sets: progress_bar function
# arguments: progress_bar function: optional arguments "Text" and width.
# "Text": Any informative text string.
# Width: An integer number, is the max width for the progress bar.
# usage: Use into a script:
# source progress_bar.sh
# progress_bar "Counting:" 25 <<< $PERCENT
# for i in {1..100}; do echo $i; sleep 1; done |progress_bar "" 20
# output: Counting: [ ============> ] 50%
function progress_bar()
{
while read PERCENT
do
COUNT=0
FOO='>'
BAR=''
CHAR='=' # Change by "#", "|" or any character.
TEXT=${1:-"Progress:"} # Sets default value to var $TEXT
WIDTH=${2:-40} # Sets default value to var $WIDTH
PROGRESS=$(($PERCENT*$WIDTH/100))
while [ $COUNT -lt $(($PROGRESS+1)) ]
do
printf "\r\t$TEXT [ %s%s ] $PERCENT%% " ${BAR} ${FOO}
BAR="${BAR}$CHAR"
COUNT=$(($COUNT+1))
done
done
echo " Done."
}
Revision: 30796
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 22, 2010 16:21 by ksaver
Initial Code
# snippet: progress_bar.sh
# version: 0.02
# author: ksaver (at identi.ca)
# licence: http://creativecommons.org/licenses/BSD/
# sets: progress_bar function
# arguments: progress_bar function: optional arguments "Text" and width.
# "Text": Any informative text string.
# Width: An integer number, is the max width for the progress bar.
# usage: Use into a script:
# source progress_bar.sh
# progress_bar "Counting:" 25 <<< $PERCENT
# for i in {1..100}; do echo $i; sleep 1; done |progress_bar "" 20
# output: Counting: [ ============> ] 50%
function progress_bar()
{
while read PERCENT
do
COUNT=0
FOO='>'
BAR=''
CHAR='=' # Change by "#", "|" or any character.
TEXT=${1:-"Progress:"} # Sets default value to var $TEXT
WIDTH=${2:-40} # Sets default value to var $WIDTH
PROGRESS=$(($PERCENT*$WIDTH/100))
while [ $COUNT -lt $(($PROGRESS+1)) ]
do
printf "\r\t$TEXT [ %s%s ] $PERCENT%% " ${BAR} ${FOO}
BAR="${BAR}$CHAR"
COUNT=$(($COUNT+1))
done
done
echo " Done."
}
Initial URL
http://identi.ca/ksaver
Initial Description
Initial Title
progress_bar.sh
Initial Tags
Bash
Initial Language
Bash