介绍
当用户在 Linux 中发出多个命令序列时,这些命令会立即一个接一个或并发执行(例如tee 命令)。但是,有时需要推迟命令的执行并为系统提供足够的时间来产生预期的结果。
Linux如何使用sleep命令?在本教程中,你将学习如何使用 Linuxsleep
命令延迟终端和 shell 脚本中的命令执行,包括相应的Linux sleep命令用法示例。
先决条件
- 一个运行 Linux 的系统
- 访问命令行
Linux sleep 命令有什么作用?
该sleep
命令将下一个命令的调用进程挂起指定的时间量。当以下命令的执行取决于前一个命令的成功完成时,此属性很有用。
如何使用Linux sleep命令:Linux sleep 命令语法解释
sleep
命令的语法很简单:
sleep [number]
在上面的例子中,在sleep 5
执行后,第二个命令提示符出现了 5 秒的延迟。
默认情况下,系统读取之后sleep
的数字作为秒数。要指定其他时间单位,请使用以下语法:
sleep [number][unit]
该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"
为 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命令?以下示例说明了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
留出时间完成操作
你可能正在运行一个 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 命令等待所有或特定的后台任务完成。