如何使用Linux Sleep命令暂停Bash脚本

Unity桌面概念上的Bash shellFatmawati Achmad Zaenuri / Shutterstock.com

sleep命令使您的Linux计算机什么都不做。或许反直觉,但有时候一段时间不活动就是需要的。本文介绍如何有效地使用此Bash shell命令。

运用 睡觉 简单。在命令行类型上 睡觉,空格,数字,然后按Enter键。

睡觉5

光标将消失五秒钟然后返回。发生了什么?运用 睡觉 在命令行上指示Bash在您提供的持续时间内暂停处理。在我们的例子中,这是五秒钟。

sleep 5命令没有可见输出

我们可以将持续时间传递给 睡觉 以天,小时和分钟为单位,以秒为单位。为此,请包含后缀 d,h,m, 要么 小号 与持续时间。要使睡眠暂停一天,四小时,七分五秒,请使用如下命令:

睡1d 4h 7m 5s

小号 后缀(秒)是可选的。没有后缀, 睡觉 将任何持续时间视为秒。假设你想拥有 睡觉 暂停五分二十秒。此命令的一种正确格式是:

睡5个月20

如果你忘了提供 分钟持续时间的后缀,你会指示 睡觉 暂停五秒,然后再暂停二十秒。所以 睡觉 会暂停25秒。

许多命令要求您按特定顺序提供参数,但是 睡觉 很宽容。您可以按任何顺序提供它们 睡觉 他们会理解他们的意义。您还可以提供浮点数作为参数。例如,0.5h是表明您希望的有效方式 睡觉 暂停半小时。

所有以下(越来越古怪)的命令都告诉我们 睡觉 暂停10秒钟。

睡10
睡5 5s
睡1 1 1s 1 1 1s 1 2
睡眠0.16667米

在命令之前使用Sleep来暂停

睡觉 命令可用于在执行命令之前暂停。此命令将暂停15秒,然后发出哔哔声。

睡15 && echo -en' 007'

使用Sleep在两个命令之间暂停

您可以使用 睡觉 在两个命令之间暂停此命令将列出Documents目录中的文件,暂停五秒钟,然后将当前工作目录更改为您的主目录:

ls -R~ / Documents && sleep 5 && cd~

两个命令的输出由sleep分隔

使用Sleep来暂停执行脚本

你可以使用 睡觉 shell脚本中的命令可以在一段精确的时间内暂停执行脚本。通常,您这样做是为了让某些进程有足够的时间在脚本继续处理之前完成。您还可以使用它来限制脚本对其他资源的请求。

为了证明这一点,这里有一个脚本,使用它来调用Google Web服务 卷曲。当您使用书籍的ISBN号查询Web服务时,它会响应有关该书籍的JSON数据转储。我们可以通过传递它来解析该数据 JQ 用于检索书名的实用程序。因此,脚本不会对Web服务造成压力,它会在Web请求之间休眠一秒钟。

创建包含以下文本的文件,并将其另存为 check_book.sh

#!/斌/庆典

用于预订`cat $ 1`

 echo $ book“:”
 curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq'.items | 。[] | .volumeInfo.title”
 回声“”
 睡觉1
DONE

回声“一切都完成了。”

键入以下命令以设置执行权限并使脚本可执行。

chmod + x check_book.sh

该脚本需要 卷曲JQ 公用事业。使用 apt-get的 如果您使用的是Ubuntu或其他基于Debian的发行版,请将这些软件包安装到您的系统上。在其他Linux发行版上,请使用Linux发行版的包管理工具。

sudo apt-get install curl
sudo apt-get install jq

创建包含以下数字的文本文件,并将其另存为 books.txt

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

跑过 check_book.sh 脚本并传入 books.txt file作为参数。

./check_book.sh books.txt

check_book.sh shell脚本的输出

这些请求会每隔一秒向Google Web服务发出一次请求。在查询每个ISBN号后不久将出现该书的标题。

这就是全部 睡觉。内部的运作方式 check_book.sh 脚本超出了本文的范围。选择该剧本纯粹是为了说明该剧本的有效用途 睡觉 命令。如果您想了解有关脚本的两个主要组件的更多信息,请参阅 卷曲 项目页面和 JQ 在线手册。

本文机器自动生成,不保证语句完整通顺和表达准确,亦不对内容真实有效性负责,请读者知悉。