シェルスクリプト内で 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 件のコメント:
コメントを投稿