60秒待つときに“.......”というように出したい
目からうろこだったのでメモ。
インストールのときに、
...
......
.........
というように“.......”で経過を表すプログラムがありますが、あれをやりたい時のヒント。
LoopCount.sh
#! /bin/ksh
# 60秒以内にhoge.txtというファイルが同じディレクトリに生成されたかどうかチェックし、
# 生成されたらメッセージを返す
LoopCnt=0
LoopMax=60
while true
do
sleep 1
# 必ずさせる処理
echo -n "."
if [[ -e hoge.txt ]] ; then
echo ""
echo "File was Created!"
break
fi
# 条件を満たしたか毎秒チェック
(( LoopCnt = ${LoopCnt} + 1 ))
if [[ ${LoopCnt} -ge ${LoopMax} ]] ; then
echo ""
echo "End"
break
fi
done
実行結果
# ファイルが60秒以内に生成できた場合
$ ./LoopCount.sh
..............
File was Created!
# ファイルが60秒以内に生成できなかった場合
$ ./LoopCount.sh
............................................................
End
他にも「60秒以内に~~したら」というようなときにも使える。うっかりsleep 60
とか書いてしまいそうだが、こう書いておけば早く次の処理に移れてクール!