⏳
シェルスクリプトで簡易プログレスバー
シェルスクリプトで普通にsleep
すると経過時間・残り時間が可視化できないため、時間経過に応じて延びるプログレスバーを作りました。
何らかの処理の進捗によって増えるわけではないので、「プログレス」は名前に偽りありかもしれませんが…。
progress.sh
#!/bin/bash
w=$(($1*10))
printf '=%.0s' $(seq $w)
printf '\r'
for i in $(seq $w)
do
sleep .1
printf '#'
done
printf '\n'
秒数を引数として取ります。簡易版なので引数がない場合のエラーハンドリングなどはしていません。
以下ツイートに動作イメージを添付しています。
なお厳密な時間計測には使えないのでご注意ください。
文字の繰り返しの出力はこちらを参考にしました: https://stackoverflow.com/questions/5349718/how-can-i-repeat-a-character-in-bash
Discussion