#!/bin/bash # see https://yangtze736.github.io/%E6%8A%80%E6%9C%AF/2018/05/02/shell-tips/ # function waiting() { i=0 while [ $i -le 100 ] do for j in '\\' '|' '/' '-' do printf "%c%c%c%c%c waiting %c%c%c%c%c\r" \ "$j" "$j" "$j" "$j" "$j" "$j" "$j" "$j" "$j" "$j" sleep 0.1 done let i=i+4 done } function progress_bar() { i=0 str="" arry=("\\" "|" "/" "-") while [ $i -le 100 ] do let index=i%4 printf "[%-100s] %d %c\r" "$str" "$i" "${arry[$index]}" sleep 0.1 let i=i+1 str+="#" done echo "" } function progress_bar2() { i=0 str="" arry=("|" "/" "-" "\\") while [ $i -le 100 ] do let index=i%4 printf "%3d%% %c%-20s%c\r" "$i" "${arry[$index]}" "$str" "${arry[$index]}" sleep 0.2 let i=i+5 str+="*" done echo "" } progress_bar