关于bash:在继续之前,如何暂停shell脚本一秒钟?

How do I pause my shell script for a second before continuing?

我只知道如何等待用户输入。但是,我只想暂停一下,这样我的while true就不会使我的电脑崩溃。

我试过pause(1),但上面写着-bash: syntax error near unexpected token '1'。怎么做?


使用sleep命令。

例子:

1
2
3
4
5
6
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


在python(问题最初被标记为python)中,您需要导入时间模块

1
2
import time
time.sleep(1)

1
2
from time import sleep
sleep(1)

因为shell脚本只是

1
sleep 1

执行sleep命令。如/bin/sleep


那么呢?

1
read -p"Press enter to continue"


我意识到我有点晚了,但是你也可以打电话叫睡觉,把休息的时间消磨掉。例如,如果我想等待3秒钟,我可以这样做:

1
/bin/sleep 3

4秒如下:

1
/bin/sleep 4


在Mac OSX上,睡眠不需要几分钟等,只需要几秒钟。所以两分钟,

1
sleep 120

在脚本中,您可以在希望暂停的操作之间添加以下内容。这将使程序暂停5秒钟。

1
2
3
read -p"Pause Time 5 seconds" -t 5
read -p"Continuing in 5 Seconds...." -t 5
echo"Continuing ...."


运行多个睡眠和命令

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

这将在执行第一个脚本之前等待5秒钟,然后在再次更改目录之前再次休眠3秒钟。


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

按任意一个按钮时继续