如何使用Linux sleep命令?详细示例操作指南

2021年11月20日17:00:04 发表评论 2,009 次浏览

介绍

当用户在 Linux 中发出多个命令序列时,这些命令会立即一个接一个或并发执行(例如tee 命令)。但是,有时需要推迟命令的执行并为系统提供足够的时间来产生预期的结果。

Linux如何使用sleep命令在本教程中,你将学习如何使用 Linuxsleep命令延迟终端和 shell 脚本中的命令执行,包括相应的Linux sleep命令用法示例。

先决条件

  • 一个运行 Linux 的系统
  • 访问命令行

Linux sleep 命令有什么作用?

sleep命令将下一个命令的调用进程挂起指定的时间量。当以下命令的执行取决于前一个命令的成功完成时,此属性很有用。

如何使用Linux sleep命令:Linux sleep 命令语法解释

sleep命令的语法很简单:

sleep [number]
如何使用Linux sleep命令?详细示例操作指南

在上面的例子中,在sleep 5执行后,第二个命令提示符出现了 5 秒的延迟。

默认情况下,系统读取之后sleep的数字作为秒数。要指定其他时间单位,请使用以下语法:

sleep [number][unit]
如何使用Linux sleep命令?详细示例操作指南

sleep命令接受浮点数。它允许多个值,这些值都加在一起来计算 的持续时间sleep

可用单位有:

  • s – 秒
  • m - 分钟
  • h - 小时
  • d - 天

sleep在它开始后和指定的等待期结束前停止,请按Ctrl + C

要查看该sleep命令的帮助,请键入:

sleep --help 

有关版本详细信息,请键入:

sleep --version

Linux sleep命令用法示例

以下部分包含sleep在终端或 shell 脚本中使用该命令的示例。

注意:sleep命令旨在与其他 Linux 命令结合使用。有关可用 Linux 命令的列表,请下载我们免费的 Linux 命令备忘单。

设置闹钟

如何使用Linux sleep命令?使用sleep来告诉系统在一定时间后播放MP3文件。该示例使用 mplayer:

sleep 7h 30m && mplayer alarm.mp3

终端中的延迟命令

Linux如何使用sleep命令sleep对于强制执行两个命令之间的时间很有用。以下示例使echo命令以一秒为间隔执行:

sleep 1 && echo "one" && sleep 1 && echo "two"
如何使用Linux sleep命令?详细示例操作指南

为 sleep 命令分配一个变量

Linux sleep命令用法示例:可以为sleep命令分配一个变量。考虑以下 shell 脚本:

#!/bin/bash
SLEEP_INTERVAL="30"
CURRENT_TIME=$(date +"%T")
echo "Time before sleep: ${CURRENT_TIME}"
echo "Sleeping for ${SLEEP_INTERVAL} seconds"
sleep ${SLEEP_INTERVAL}
CURRENT_TIME=$(date +"%T")
echo "Time after sleep: ${CURRENT_TIME}"

该脚本定义了一个名为SLEEP_INTERVAL 的变量,其值稍后用作sleep命令的参数。此示例脚本的输出显示执行持续了 30 秒:

如何使用Linux sleep命令?详细示例操作指南

定义检查间隔

如何使用Linux sleep命令?以下示例说明了sleep在检查网站是否在线的脚本中使用该命令。如果成功 ping 一个网站,脚本就会停止,并sleep在不成功的 ping 之间引入 10 秒的延迟。

#!/bin/bash
while :
    do
        if ping -c 1 www.google.com &> /dev/null
        then
        echo "Google is online"
        break
        fi
    sleep 10
done
如何使用Linux sleep命令?详细示例操作指南

留出时间完成操作

你可能正在运行一个 bash 脚本,该脚本在内部调用另外两个 bash 脚本——一个在后台运行测试,另一个打印结果。Linux sleep命令用法示例:使用sleep防止第二脚本打印错误的结果,如果它的第一个脚本完成之前执行:

while kill -0 $BACK_PID ; do
    echo "Waiting for the process to end"
    sleep 1
done

kill -0 $BACK_PID命令检查第一个脚本的进程是否仍在运行。如果是,它会打印消息并在再次检查之前休眠 1 秒。

预测延迟

Linux如何使用sleep命令?使用sleep允许某些命令执行的延迟。下面的脚本片段显示了如何sleep让 CPU 有足够的时间在下一次迭代之前执行计算。

for (( i = 1 ; i <= 250 ; i++ )); 
    do  
    sleep 1
    qsub computation"${i}".pbs
done

结论

如何使用Linux sleep命令?看完本教程,你应该知道如何使用Linuxsleep命令来暂停顺序执行的命令了。

在bash的等待命令是一个Shell命令等待后台运行的进程完成并返回退出状态。与等待指定时间的 sleep 命令不同,wait 命令等待所有或特定的后台任务完成。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: