# Progress library script if [ -z "${__progress_sh_loaded}" ] then __progress_sh_loaded=yes # Implement a simple progress indicator # ( i:current i:total i:width -- s: progress() { local time_last cur="${1}" all="${2}" width="${3:-78}" time="$(date +%s)" prcnt="$(printf "%u / %u * 100\n" "${cur}" "${all}" | bc -l 2>/dev/null)" elapsed="$(printf "%u - %u\n" "${time}" "${time_start}" | bc -l 2>/dev/null)" remain="$(printf "( %u - %u ) / ( %u / %u )\n" "${all}" "${cur}" "${cur}" "${elapsed}" | bc -l 2>/dev/null)" time_last="${time}" printf "%0.2f%% E:%us R:%0.1fs" "${prcnt:-0}" "${elapsed:-0}" "${remain:-0}" } fi