Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxスリープコマンドを使用してBASHスクリプトを一時停止する方法

知っておくべきこと

  • スリープを使用する コマンドと時間。 s = m = h =時間 、または d = (たとえば、スリープ5秒 スクリプトを5秒間一時停止します)。
  • 男性の睡眠を使用する 詳細については。

この記事では、Linuxのsleepコマンドを使用してbashスクリプトを一時停止する方法などについて説明します。それ自体では、sleepコマンドはあまり役に立ちません。ただし、スクリプトの一部として、さまざまな方法で使用できます。たとえば、これを使用して、最初に失敗したコマンドを再試行する前にスクリプトを一時停止できます。

Linuxスリープコマンドを使用してBASHスクリプトを一時停止する方法

スリープコマンドの使用例

別のサーバーからダウンロードされたファイルを処理するスクリプトがあるとします。すべてのファイルのダウンロードが完了するまで、スクリプトはコピープロセスを開始しないでください。ダウンロードプロセスは、自分の前に実行される別のスクリプトによって実行されます。

ファイルをコピーするスクリプトには、すべてのファイルがダウンロードされたかどうかをテストするループが含まれている場合があります(コピープロセスを開始する前に、50個のファイルが見つかったかどうかを確認します)。

これはプロセッサ時間を使用するため、スクリプトテストを継続的に行う意味はありません。代わりに、再試行する前に、各テストの間に数分間一時停止する場合があります。スリープコマンドはそのような状況で完璧です。

スリープコマンドの使用方法

Linuxのsleepコマンドを使用するには、ターミナルウィンドウに次のように入力します。

 sleep 5s 

上記のコマンドは、コマンドラインに戻る前に端末を5秒間一時停止します。

sleepコマンドには、キーワード sleep が必要です 、 続いて、一時停止する数値と測定単位が続きます。

遅延は、秒、分、時間、または日で指定できます。

  • s :秒
  • m :分
  • h :時間
  • d :日数

スクリプトを数日間一時停止する場合は、スクリプトをバックグラウンドで数日間実行するのではなく、cronジョブを使用して定期的にスクリプトを実行します。

cronジョブは、設定された時間または曜日に実行するようにスケジュールできるLinuxコマンドまたはスクリプトです。これらは、長期間にわたってタスクを繰り返す場合に役立ちます。

スリープコマンド間隔の数値は整数である必要はありません。浮動小数点数を使用することもできます。

Linuxスリープコマンドを使用してBASHスクリプトを一時停止する方法

たとえば、次の構文には1秒未満が含まれます。

 sleep 3.5s 

スリープコマンドの使用例

次のスクリプトは、sleepコマンドを使用して端末ベースのカウントダウンクロックを作成する方法を示しています。

#!/ bin / bash 
x =10
while [$ x -gt 0]
do
sleep 1s
clear
echo "爆発するまで$x秒"
x =$(($ x-1))
完了

このスクリプトの仕組みは次のとおりです。

  • スクリプトは変数xを10に設定します。
  • xの値がゼロより大きい間、whileループは繰り返し続けます。
  • sleepコマンドは、ループの前後で毎回1秒間スクリプトを一時停止します。
  • スクリプトの残りの部分は、反復ごとに画面をクリアし、「爆発するまでx秒」というメッセージを表示し、xの値から1を減算します。
Linuxスリープコマンドを使用してBASHスクリプトを一時停止する方法

sleepコマンドがないと、スクリプトがズームスルーし、メッセージの表示が速すぎます。

スリープコマンドスイッチの使用方法

sleepコマンドには2つのスイッチしかありません。

-ヘルプ switchは、sleepコマンドのヘルプファイルを表示します。次のようにmanコマンドを使用して、同じことを実行できます。

 man sleep 

-バージョン スイッチは、システムにインストールされているsleepコマンドのバージョンを表示します。

--versionスイッチによって返される情報は次のとおりです。

  • バージョン番号
  • 著作権の詳細
  • ライセンス
  • 作成者

スリープ状態でターミナルコマンドを一時停止

sleepコマンドのもう1つの良い使用法は、ターミナルウィンドウに入力したコマンドを一時停止することです。

必要に応じて、2つのコマンドを続けて入力し、最初のコマンドが終了するのを待ってから2番目のコマンドを入力できます。

ただし、より高速な方法は、2つのコマンドを1行に入力し、各コマンドの間にスリープコマンドを配置することです。

 $ cd / mydirectory / &&sleep 3 &&ls 

このコマンドの仕組み:

  • cd / mydirectory / コマンドはディレクトリを変更します。
  • スリープ3 コマンドは、cdコマンドが終了するまで3秒間待機します。
  • ls コマンドが実行され、ディレクトリの内容が表示されます。

このような簡単な例では、sleepコマンドはほんの少しの時間を節約します。ただし、コマンドのリストが長い場合は、コマンドを1行で入力できるので時間を節約できます。


  1. Linuxでssコマンドを使用してネットワーク接続を監視する方法

    Linuxを使用している場合は、ネットワークについてもっと知る必要がある時期が来るでしょう。これを行うのに役立つツールがいくつかあり、一部のツールは他のツールよりも複雑です。 ss コマンドは多くのマシンにインストールされていると信頼できるものなので、知っておくと便利です。 ssコマンドとは何ですか? 2文字のコマンドの名前は難解に見えるかもしれませんが、実際には非常に単純です。多くのLinux/Unixコマンドと同様に、名前はコマンドの機能の省略形です。ここで、ssはSocketStatisticsの略です。 Socket Statisticsは、古いnetstatに代わるものです。

  2. Linuxでwatchコマンドを使用する方法と例

    Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時