shell sleep 睡眠命令

简介: shell sleep 睡眠命令

shell sleep 睡眠

文章目录

1. 背景

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

2. 简介

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

3. 语法

sleep [number]

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

sleep [number][unit]
sleep 1h 2m 0.5s

sleep命令接受浮点数。它允许多个值相加,以计算sleep.

可用单位有:

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

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

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

sleep --help

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

sleep --version

4. 与 wait 区别

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

5. 实例

5.1 设置警报

用于sleep告诉系统在一定时间后播放 mp3 文件。

sleep 7h 30m && mplayer alarm.mp3

5.2 终端中的延迟命令

sleep对于强制执行两个命令之间的时间很有用,以一秒的间隔执行:

$ sleep 1 && echo "one" && sleep 1 && echo "two"
one
two

5.3 变量分配给 sleep

可以将变量分配给sleep命令。

#!/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 秒:

$ ./time_script.sh
Time before sleep: 00:01:15
Sleeping for 30 seconds
Time after sleep: 00:01:45

5.4 定义检查间隔

检查网站是否在线,如果成功 ping 一个网站,脚本就会停止,在不成功的 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

5.5 为操作完成留出时间

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

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

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

5.6 预测延迟

用于sleep允许某些命令执行的延迟。

for (( i = 1 ; i <= 250 ; i++ )); 
    do  
    sleep 1
    <do something>
done

参考:

相关文章
|
6天前
|
安全 Shell 数据处理
使用Python执行Shell命令并获取结果
在实际应用中,可以根据需要选择适当的参数和方法来执行Shell命令,并处理可能出现的各种情况。无论是系统管理、自动化任务还是数据处理,掌握这些技巧都将极大地提高工作效率。
35 12
|
2月前
|
人工智能 Shell iOS开发
AI Shell:在命令行里“对话” AI ,微软推出将 AI 助手引入命令行的 CLI 工具,打造对话式交互命令行
AI Shell 是一款强大的 CLI 工具,将人工智能直接集成到命令行中,帮助用户提高生产力。AI Shell 支持多种 AI 模型和助手,通过多代理框架提供丰富的功能和灵活的使用模式。
177 7
|
2月前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
58 1
|
3月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
87 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
3月前
|
Shell 知识图谱
Shell printf 命令
10月更文挑战第3天
30 1
|
3月前
|
Unix Shell Linux
常见的shell命令
shell常用命令
75 11
|
4月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
4月前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
186 5
|
3月前
|
Shell PHP
Shell echo命令
10月更文挑战第3天
28 0
|
3月前
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
275 0