Linux Sleep 命令(暂停 Bash 脚本)

评论 0 浏览 0 2019-05-14

sleep是一个命令行工具,允许你在指定的时间内暂停调用进程。换句话说,sleep命令将下一个命令的执行暂停了一定的秒数。

当在bash shell脚本中使用时,sleep命令很有用,例如,当重试一个失败的操作时,或者在一个循环中使用。

在本教程中,我们将向你展示如何使用Linux的sleep命令。

如何使用 sleep 命令

sleep命令的句法如下:

sleep NUMBER[SUFFIX]...

NUMBER可以是一个正整数,也可以是一个浮点数。

SUFFIX可以是以下的一种:

  • s - 秒(默认)。
  • m - 分钟
  • h - 小时
  • d - 天

当没有指定后缀时,它默认为秒。

当给出两个或更多的参数时,总的时间量相当于它们的值之和。

下面是几个简单的例子,演示了如何使用sleep命令:

  • 睡眠时间为5秒:

    sleep 5
  • 睡眠时间为0.5秒:

    sleep 0.5
  • 睡眠时间为2分30秒:

    sleep 2m 30s

Bash脚本的例子

在这一节中,我们将学习一些基本的shell脚本,看看sleep命令是如何使用的。

#!/bin/bash

# start time
date +"%H:%M:%S"

# sleep for 5 seconds
sleep 5

# end time
date +"%H:%M:%S"

当你运行该脚本时,它将以HH:MM:SS的格式打印当前时间。然后,sleep命令使脚本暂停5秒钟。一旦指定的时间段过了,脚本的最后一行就会打印出当前时间。

输出结果将看起来像这样:

输出

13:34:40
13:34:45

让我们来看看一个更高级的例子:

#!/bin/bash

while :
do
  if ping -c 1 ip_address &> /dev/null
  then
    echo "Host is online"
    break
  fi
  sleep 5
done

该脚本每隔5秒钟检查一次主机是否在线。当主机上线后,脚本会通知你并停止。

脚本是如何工作的:

  • 在第一行中,我们正在创建一个无限的while循环
  • 然后,我们使用ping命令来确定IP地址为ip_address的主机是否可以到达。
  • 如果主机可以到达,脚本将echo "Host is online",并终止循环。
  • 如果主机无法到达,sleep命令就会使脚本暂停5秒钟,然后从头开始循环。

总结

sleep命令是最简单的Linux命令之一。它是用来暂停下一条命令的执行,暂停时间为一定量。

如果你有任何问题或反馈意见,请随时留言。

最后更新2023-06-28
0 个评论
标签