web-dev-qa-db-ja.com

続行する前にシェルスクリプトを1秒間一時停止するにはどうすればよいですか?

ユーザー入力を待つ方法を見つけただけです。ただし、while trueがコンピューターをクラッシュさせないように、一時停止したいだけです。

私はpause(1)を試しました、しかしそれは-bash: syntax error near unexpected token '1'を言います。どうすればそれができますか?

551
user3268208

sleepコマンドを使用してください。

例:

sleep .5 # Waits 0.5 second.
sleep 5  # Waits 5 seconds.
sleep 5s # Waits 5 seconds.
sleep 5m # Waits 5 minutes.
sleep 5h # Waits 5 hours.
sleep 5d # Waits 5 days.

時間単位を指定するときに小数を使用することもできます。例えばsleep 1.5s

988
RydallCooper

Python(質問はもともとPythonのタグが付いていました)では、timeモジュールをインポートする必要があります。

import time
time.sleep(1)

または

from time import sleep
sleep(1)

シェルスクリプトはただです

sleep 1

これはsleepコマンドを実行します。例えば。 /bin/sleep

63
John La Rooy

そして何について:

read -p "Press enter to continue"
52
Vonton

私はこれで少し遅れていることを認識しています、しかしあなたはまたsleepを呼んでそして不機嫌な時間を渡すことができます。例えば、私が3秒間待つことを望むなら:

/bin/sleep 3

4秒は次のようになります。

/bin/sleep 4
37
pcmaster574

Mac OS Xでは、スリープには数分/ etcではなく、数秒しかかかりません。 2分間

sleep 120
28
AnneTheAgile

スクリプト内で、一時停止したいアクションの間に以下を追加できます。これで5秒間ルーチンが一時停止します。

read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
15
Jose H. Rosa

複数のスリープとコマンドを実行する

sleep 5 && cd /var/www/html && git pull && sleep 3 && cd ..

これは最初のスクリプトを実行する前に5秒間待ってから、再びディレクトリを変更する前に3秒間再びスリープします。

11
Robot Boy

read -r -p "Wait 5 seconds or press any key to continue immediately" -t 5 -n 1 -s

いずれかのボタンを押しても続行する

4
Andrey

デフォルトの乱数ジェネレータである$ RANDOMを使用して待機させることができます。以下では240秒を使っています。それが役立つことを願っています@

> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS