重い処理を書いてる時に唐突にプログレスバーを付けたくなった。
なんかシンプルないいやつないかなーって思ってみたらあった。
Bash で動作するプログレスバー
なるほど。とりあえずつかってみたがいい感じ。だけど
なんかシンプルないいやつないかなーって思ってみたらあった。
Bash で動作するプログレスバー
なるほど。とりあえずつかってみたがいい感じ。だけど
PROGRESS=$(echo | awk -v t=$TIMES -v c=$COUNT -v max=$MAX '{ print int(c / t * max) }')この部分のawkの部分が1以上ないと良からぬことが起きるので、MINを0にした。
[user@test check]$ diff -uBB bash-progress-bar-master/progress-bar bash-progress-bar/ --- bash-progress-bar-master/progress-bar 2014-05-20 00:04:39.000000000 +0900 +++ bash-progress-bar/progress-bar 2014-12-10 15:47:38.000000000 +0900 @@ -1,7 +1,7 @@ #!/bin/bash BAR="#" -MIN=1 +MIN=0 MAX=100 progress_bar() { @@ -12,7 +12,7 @@ PROGRESS_BAR="" for _i in $(seq $MIN $PROGRESS); do PROGRESS_BAR="${PROGRESS_BAR}${BAR}"; done - printf "\r[%-100s] %3d%%" $PROGRESS_BAR $PROGRESS + printf "\r[%-100s] %3d%%(%d/%d)" $PROGRESS_BAR $PROGRESS $COUNT $TIMES } byte() { [user@test check]$下の部分は処理に時間がかかる場合0%が続くので、動いてるかどうかわからなくて何件処理中かってのを入れるようにしました。気分で。