シェルスクリプト内で unixtime を得るには /bin/date +%s が利用できます。この方法で取得した unixtime はシェルスクリプト内で加算・減算したり、比較したりできます。
以下は、 sleep に頼らずに $TIMEOUT 秒間待機する例です。単純に sleep $TIMEOUT と記述するよりも、柔軟な待機ループを実装できます。
TIMEOUT=10
TIME_START=`/bin/date +%s` # ループ開始時刻(いま)
TIME_END=$((${TIME_START} + ${TIMEOUT})) # ループ脱出時刻
echo -n running
while [ `/bin/date +%s` -lt ${TIME_END} ]; do
sleep 1
echo -n .
# MySQL Server への接続性が確認できたら $TIMEOUT 秒待たずにループを抜ける
mysql -e 'SHOW STATUS' 1> /dev/null 2> /dev/null && break
done
0 件のコメント:
コメントを投稿