Linuxコマンド「sleep」


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:標準出力、標準エラーの内容を表示しない(捨てる)

参考リンク

📚 おすすめの書籍