myfreax

Linux Sleep暂停Bash脚本

Sleep是一个命令,可让您在指定的时间中挂起调用的进程。换句话说,sleep命令将下一条命令的执行之前暂停指定的秒数

2 min read
By myfreax
Linux Sleep暂停Bash脚本

Sleep是一个命令,可让您在指定的时间中挂起调用的进程。换句话说,sleep命令将下一条命令的执行之前暂停指定的秒数。

当在bash shell脚本中使用时,例如,重试失败的操作或在循环内,sleep特别有用。在本教程中,我们将向您展示如何使用Linux 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脚本中使用sleep命令的最基本示例。运行脚本时,它将以格式显示当前时间HH:MM:SS

然后sleep将脚本暂停5秒钟。经过指定的时间段后,脚本的最后一行将再次打印当前时间。

#!/bin/bash

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

# sleep for 5 seconds
sleep 5

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

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

#!/bin/bash

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

上面的脚本将每隔5秒检查一次主机是否在线,当主机在线时,该脚本将通知您并停止。

这是shell脚本的工作方式。在第一行中,我们创建一个无限的while循环。然后,我们使用ping命令确定IP地址为ip_address的主机是否可访问。

如果主机可访问,脚本将echo打印 Host is online主机在线并终止循环。如果主机不可访问,sleep命令将脚本暂停5秒钟,然后循环从头开始。

到目前为止,您应该对如何使用Linux sleep命令有一个很好的了解。sleep命令是最简单的shell命令之一,仅接受一个用于指定睡眠间隔的参数。