60秒待つときに“.......”というように出したい

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とか書いてしまいそうだが、こう書いておけば早く次の処理に移れてクール!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.