Linux Sleep命令(暂停Bash脚本)

时间:2020-03-05 15:27:35  来源:igfitidea点击:

'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”的主机是否可访问。
  • 如果主机可访问,则脚本将回显“主机在线”并终止循环。
  • 如果主机不可访问,则“ sleep”命令将脚本暂停5秒钟,然后循环从头开始。