分享最新优惠信息
购买主机更加划算

Linux系统使用sleep命令延迟执行示例用法详解

大多Linux爱好者更喜欢编写shell脚本来自动执行简单的任务,不过编写一个功能强大的脚本并不是一件容易的事,因为需要处理许多极端情况,例如重试机制、调试、日志记录、错误报告等。

除此之外,很多时候可能还需要模拟命令执行的延迟来测试超时场景,这种情况就需要在脚本中引入延迟来实现重试机制,而sleep命令是处理此类场景的完美解决方案。

在本文当中,小编将简单介绍一些sleep命令的常见用法。顾名思义,sleep命令就是用来延迟下一个命令的执行,它使调用程序休眠一段指定的时间。下面一起来看看使用实例吧。

sleep命令语法

sleep命令的语法非常简单,因为它接受一个带有可选后缀的强制参数,如下表示:

$ sleep <NUMBER>[SUFFIX]

请务必注意:在上述语法中, NUMBER和SUFFIX之间没有空格。

1、延迟Linux命令执行

默认情况下,sleep命令会等待几秒钟。为了理解这一点,让我们在使用sleep命令前和后输出当前时间。例如,以下命令在打印当前时间后等待5秒再次打印时间:

$ date '+%r'; sleep 5; date '+%r'

在此示例中,需要使用分号(;)分隔每个命令。

延迟Linux命令执行

2、发出等待N分钟的命令

一般情况下,sleep命令允许我们使用后缀指定时间单位,这个可以在sleep命令中使用以下后缀表示:

  • s– 以秒为单位指定时间单位。
  • m– 以分钟为单位指定时间单位。
  • h– 以小时为单位指定时间单位。
  • d– 以天为单位指定时间单位。

所以,这里将使用'm'后缀休眠1分钟:

$ date '+%r'; sleep 1m; date '+%r'

延迟Linux命令指定时间

3、让命令休眠X分秒

其实还可以在sleep命令中使用多个后缀。在这种情况下,持续时间是通过将所有值相加来计算的。

为了理解这一点,下面将使用命令休眠120秒,命令如下:

$ date '+%r'; sleep 1m 20s; date '+%r'

在上面的示例中,使用了两个不同的后缀。但是,也可以使用相同的后缀。比如可以用2s3s后缀来休眠5秒,命令如下:

$ date '+%r'; sleep 2s 3s; date '+%r'

让Linux命令休眠X时间

4、通过sleep命令使用浮点数

此外,sleep命令还接受一个浮点数作为输入,这样可以使用这种方法睡眠不到一秒钟。例如,可以使用0.5s值休眠半秒:

$ date '+%r'; sleep 0.5s; date '+%r'

在上面的输出中,可以看到date命令为秒时间单位显示了相同的值。

除此之外,还可以使用带有其它后缀的浮点值。例如,可以使用0.5m值休眠30秒:

$ date '+%r'; sleep 0.5m; date '+%r'

在睡眠命令中使用浮点数

5、使用sleep命令模拟闹钟

在前面的几个例子中,主要介绍了如何使用sleep命令来延迟下一个命令的执行。另外,还可以使用这个技巧来模拟闹钟。

因此,接下来使用以下命令在5秒后设置警报:

$ sleep 5; cvlc alarm.mp3

使用sleep命令模拟闹钟

上述命令在等待5秒后使用VLC媒体播放器打开alarm.mp3文件。就像任何其它Linux命令一样,可以使用ctrl+c组合键来停止VLC媒体播放器。

在此示例中,小编使用了VLC媒体播放器,但也可以使用任何其它Linux媒体播放器或声音实用程序来获得相同的结果。

6、使用sleep命令模拟数字时钟

为了模拟数字时钟,可以在每一秒后无限循环地运行sleep命令。接下来用一个例子来理解这一点。首先,使用以下代码编写一个名为digital-clock.sh的简单shell脚本:

#!/bin/bash

while [ 1 ]
do
	clear
	tput cup 5 30
	date '+%r'
	sleep 1
done

在此脚本中,使用tput命令将光标置于第 5第 30列。现在,运行脚本并查看结果:

$ chmod +x digital-clock.sh 
$ ./digital-clock.sh

使用sleep命令模拟数字时钟

最后,可以使用ctrl+c组合键来停止脚本的执行。

未经允许不得转载:惠主机 » Linux系统使用sleep命令延迟执行示例用法详解