Pieds-Nus_custom-scripts/progressbar.sh

57 lines
1.1 KiB
Bash

#!/bin/bash
usage() { echo "Usage: $0 [-c bar|dot|o] [-s str] [-z] VALUE" 1>&2; ${1:+echo $1} ; exit 1; }
while getopts ":c:s:hz:" o; do
case "${o}" in
c)
case ${OPTARG} in
"bar") replace="" ;;
"dot") replace=*\"\' ;;
"o"|"O") replace="Oo.";;
*) usage "-c option only accepts \"bar\", \"dot\" or \"o\"" ;;
esac
;;
s)
if test $(echo -n ${OPTARG} | wc -c ) -eq 3 ; then
replace=${OPTARG}
else
usage "-s option requires a 3-character-long string"
fi
;;
z)
z=-n
;;
*)
usage "Invalid argument: $o $OPTARG"
;;
esac
done
shift $((OPTIND-1))
test $# -ne 1 && usage
value=${value:-$1}
test $value -ge 0 -a $1 -le 100 || usage "VALUE must be an integer between 0 and 100"
for j in {3..100..3} ; do
if [[ j -gt $value ]] ; then
case $(($value%3)) in
0) res=$res"";;
1) res=$res".";;
2) res=$res":";;
esac
break
fi
res=$res"|"
done
res=$res" "
res=[${res:1:32}]
test $replace && res=$(echo "$res" | tr "|:." "$replace")
echo $z "$res"