3个在Bash脚本中使用sleep命令的不同例子

414 阅读4分钟

当你创建你的Bash脚本时, 它们的功能是这样的, 即你必须等待其中的某些函数完成其处理, 然后才能继续进行下去.Bash脚本中的等待是由 "sleep "命令引入的。Bash中的sleep命令允许你在做任何进一步的处理之前等待多久都可以。这个功能在处理Linux中的客户端和服务器时发现了一个特殊的用例。

在客户机-服务器模型中,多个客户机可以连接到一个服务器,这取决于它的请求处理能力。客户端总是发起一个连接请求,而服务器则听从这个请求。然而,有时,服务器可能正忙于处理其他请求。因此,应该为客户端定义一个时间段,在取消连接启动请求之前,该客户端应该等待。这个时间长度可以在使用sleep命令的时候定义。

这只是客户机-服务器模型中睡眠命令的一个简单使用案例;然而,这个命令也可以在这个模型中起到其他不同的作用。我们的动机是学习如何在Ubuntu 20.04的Bash脚本中进行睡眠。为了达到这个目的,我们设计了这个教程,一旦你按照教程中的例子操作,你将获得最大的收益。

如何在Ubuntu 20.04的Bash脚本中休眠?

在Bash脚本中进行睡眠,所使用的命令是 "sleep"。为了方便起见,这个命令的语法如下。

$ sleep duration

这里,持续时间指的是你希望程序睡眠的秒数、分钟、小时或天数。默认的睡眠时间是以秒为单位的,这意味着如果你执行 "sleep 2 "命令,你的程序将仅仅睡眠2秒。然而,如果你想让你的程序睡眠几分钟、几小时或几天,那么你必须在睡眠时间后面使用 "m"、"h "或 "d "字符,分别指定分钟、小时或几天。

现在,为了更好地理解睡眠命令的工作原理,你必须阅读以下我们特别为你设计的例子,以了解Ubuntu 20.04中Bash中睡眠命令的用法。

例子1:Bash中睡眠命令的简单用法。

第一个例子是最简单的一个,我们只是想教你如何创建一个使用睡眠命令的Bash脚本。这个Bash脚本的例子如下所示。

我们只是在这个脚本中使用了sleep命令,然后是sleep持续时间,在我们的例子中是2,这意味着我们的脚本将在做任何进一步的处理之前睡眠两秒钟。在睡眠两秒钟之后,我们希望我们的脚本在 "echo "命令的帮助下在终端打印一条随机信息。

现在,为了通过Ubuntu 20.04终端执行这个脚本,我们将在其中运行下面的命令。

$ bash Sleep.sh

Sleep.sh是文件名,在这个特定的例子中,我们的Bash脚本被写入其中。

一旦这个命令被执行,我们的终端就会等待2秒钟,然后在终端上显示我们的脚本中所述的信息,如下面的图片所示。

当你创建一个类似的Bash脚本并在你的Ubuntu 20.04系统上执行时,你会验证它。

例子2:在Bash中使用Sleep命令来比较两个不同的时间。

现在我们想让你进一步了解Ubuntu 20.04中Bash中sleep命令的用法。为此,你应该先看一下我们设计的下面这个Bash脚本。

在这个Bash脚本中,我们首先使用date命令以 "小时、分钟、秒 "的格式来打印当前的系统时间。之后,我们使用sleep命令让脚本休眠2秒。然后,我们又使用了date命令来打印当前的系统时间。基本上,我们想比较这两个不同的时间,或者换句话说,我们想检查我们的sleep命令是否真的让我们的脚本睡眠了2秒。

这个Bash脚本可以用我们在第一个例子中使用的相同命令来执行。我们在下面的图片中显示了这个脚本的输出。

在这个输出中,你可以注意到两个时间之间的差异。第一个时间是18:26:06,之后我们的Bash脚本休眠了2秒。第二个时间是18:26:08。这两个时间正好相差2秒,这意味着我们的睡眠命令被正确执行了。

例子 3: 在Bash的For Loop中使用睡眠命令:

最后,我们将设计一个Bash脚本的例子,在 "for循环 "中使用睡眠命令。你可以先看看我们为此而设计的下面这个Bash脚本。

这个Bash脚本首先声明了一个名为 "numbers "的数组,并为这个数组分配了三个值,即1、2、3,这意味着声明的数组有三个元素。然后,我们有一个变量,我们把这个数组的长度分配给它,这样我们的 "for 循环 "就可以很容易地在这个数组中进行迭代。然后,我们有一个 "for 循环",它总共有三次迭代,因为它迭代了 "数字 "数组的长度,也就是3。在这个 "for 循环 "中,我们想逐一打印 "数字 "数组中的元素,在打印下一个值之前暂停1次。这就是为什么我们首先使用 "echo "命令来打印数组的索引值,然后是一个随机信息。然后我们的脚本将休眠一秒钟,之后将打印下一个值。

这个脚本的执行方式与我们执行前两个示例脚本的方式相同。这个Bash脚本的输出显示在下面的图片中。

你可以很容易地从上面显示的输出中看出,我们的Bash脚本在打印完 "numbers "数组的每个索引值后,正好睡了一秒钟。

结语

本文首先简要介绍了Ubuntu 20.04系统中Bash的sleep命令,然后是其一般语法。然后,我们和大家分享了三个在Bash脚本中使用该命令的不同例子。这些例子从非常简单的复杂程度开始,上升到相对困难的复杂程度。然而,我们的主要目标是告诉你如何在Ubuntu 20.04系统的Bash脚本中使用sleep命令。希望通过本教程的学习,你能够在你的Bash脚本中非常有效地使用sleep命令。