sleep
コマンドは指定され時間処理を停止するコマンドです。
sleep 時間[smhd] |
[smhd]
は、秒(s)、分(m)、時間(h)、日(d)、を表します。
🏀 応用例
TCPで指定したホスト名、ポート名にアクセスして応答がなければあるまで1分間待つ場合は次のコマンドです。
for i in `seq 60`; do timeout 1 bash -c (echo > /dev/tcp/{hostname}/{port}) > /dev/null 2>&1 && break || sleep 1; done |
seq
:連続した数字の列(1,2,…60)を出力timeout
:1秒以内に処理が成功しなければタイムアウトbash -c
:標準入力から読み込んだコマンドを実行するecho > /dev/tcp/{hostname}/{port}
:TCPで指定したホスト、ポートにアクセス> /dev/null/2&1
:標準出力、標準エラーの内容を表示しない(捨てる)
参考リンク
- Linuxコマンド【 seq 】連続した数字の列を出力・表示 - Linux入門 - Webkaru
- bash で TCP 通信 - Qiita
- bash - コマンド (プログラム) の説明 - Linux コマンド集 一覧表
- cmd > /dev/null 2>&1」の話 - Qiita