在Bash脚本中使用Linux Sleep命令

时间:2020-03-05 15:31:39  来源:igfitidea点击:

Linux sleep命令是最简单的命令之一。
从名字可以猜到,它的唯一功能就是睡觉。
换句话说,它会引入指定时间的延迟。

因此,如果将sleep命令与x一起使用,则下一个命令只能在x秒后运行。

睡眠命令具有简单的语法:

sleep Number[Suffix]

其中后缀可以是:

  • s秒。这是默认值。
  • m分钟。
  • h小时。
  • d天。

让我们看一下sleep命令的一些示例。

Bash sleep命令示例

尽管我们可以直接在shell中使用它,但是sleep命令通常用于在执行bash脚本时引入延迟。
我将通过示例bash脚本显示sleep命令的用法。

不带后缀的睡眠命令以秒为单位

假设我们想将bash脚本暂停5秒钟,则可以像这样使用sleep:

sleep 5

在示例bash脚本中,它可能看起来像这样:

!/bin/bash
echo "Sleeping for 5 seconds…"
sleep 5
echo "Completed"

如果使用time命令运行它,我们将看到bash脚本实际运行了(略)超过5秒钟。

time ./sleep.sh 
Sleeping for 5 seconds…
Completed
real    0m5.008s
user    0m0.000s
sys    0m0.007s

带有分钟,小时或者天后缀的睡眠命令

我们可以通过以下方式以分钟为单位指定睡眠时间:

sleep 1m

这会将脚本/shell暂停一分钟。
如果要将脚本延迟几个小时,可以使用h选项:

sleep 2h

即使我们想将bash脚本暂停几天,也可以使用d后缀:

sleep 5d

如果我们想在隔日或者工作日运行,这可能会有所帮助。

带有秒,分钟,小时和天的组合的睡眠命令

我们没有义务一次只使用一个后缀。
我们可以使用多个后缀,并且睡眠时间是所有后缀的总和。

例如,如果我们使用以下命令:

sleep 1h 10m 5s

这将使脚本等待1小时10分钟5秒。
请注意,后缀在这里仍然是可选的。

温馨提示:睡眠不到一秒钟

我们可能已经注意到,sleep命令中最小的时间单位是秒。
但是,如果bash脚本要睡眠几毫秒怎么办?

好消息是,我们可以在睡眠命令中使用浮点数(小数点)。

因此,如果要引入5毫秒的暂停,请按以下方式使用它:

sleep 0.005

我们还可以将小数点与其他后缀一起使用。

sleep 1.5h 7.5m

它将导致1小时37分钟30秒的延迟。