Linux 睡眠命令(暂停 Bash 脚本)

2023-10-17

sleep是一个命令行实用程序,允许您将调用进程挂起指定的时间。换句话说,sleep命令将下一个命令的执行暂停给定的秒数。

The sleep该命令在 bash shell 脚本中使用时非常有用,例如,在重试失败的操作或在循环内时。

在本教程中,我们将向您展示如何使用 Linuxsleep命令。

如何使用sleep命令#

语法为sleep命令如下:

sleep NUMBER[SUFFIX]...

The NUMBER可以是正整数或浮点数。

The SUFFIX可能是以下之一:

  • s- 秒(默认)
  • m- 分钟
  • h - hours
  • d - days

如果未指定后缀,则默认为秒。

当给出两个或多个参数时,总时间等于它们值的总和。

以下是一些简单的示例,演示如何使用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"

当你运行脚本时,它会打印当前时间 in 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是否可达。
  • 如果主机可访问,脚本将echo“主机在线”并终止循环。
  • 如果无法访问主机,则sleep命令暂停脚本 5 秒,然后从头开始循环。

结论#

The sleep命令是最简单的 Linux 命令之一。它用于在给定的时间内暂停执行下一个命令。

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 睡眠命令(暂停 Bash 脚本) 的相关文章

  • 从 pthread 调用 sleep() 是否会使线程或进程进入睡眠状态?

    我看到有一个关于linux pthread睡眠 https stackoverflow com questions 3633089 pthread sleep linux 然而 当我在 Linux 机器上查找手册页时 我看到以下内容 概要
  • 如何在 TypeScript 中实现睡眠功能?

    我正在使用 TypeScript 在 Angular 2 中开发一个网站 我想知道是否有办法实现thread sleep ms 功能 我的用例是在几秒钟后提交表单后重定向用户 这在 JavaScript 中非常简单 但我不确定如何在 Typ
  • macOS 上的 Bash - 获取给定年份每个星期六的日期列表

    In bash on macOS 我想写一个小脚本dates 或任何其他可以做的程序 它给我一个格式的日期列表yyyymmdd给定年份的每个星期六并将其保存到变量中 例如 如果我想要 1850 年所有星期六的日期列表 它应该看起来像这样 v
  • 在 PowerShell 中显示 Unicode

    我想要实现的目标应该相当简单 尽管 PowerShell 试图让它变得困难 我想显示文件的完整路径 其中一些文件的名称中包含阿拉伯语 中文 日语和俄语字符 我总是得到一些无法解读的输出 如下所示 控制台中看到的输出正被另一个脚本使用 输出包
  • 如何在Python中获取Linux控制台窗口宽度

    python 有没有办法以编程方式确定控制台的宽度 我的意思是一行中不换行的字符数 而不是窗口的像素宽度 Edit 寻找适用于 Linux 的解决方案 不确定为什么它在模块中shutil 但它在 Python 3 3 中出现了 看 查询输出
  • 运行不带“python”关键字的 python 脚本

    如何在 Mac 上的终端中运行 python 脚本而不使用 python 关键字 而无需编辑现有的 python 文件 现在我必须这样做 python script py 我喜欢做的是这样的 script py 添加一个shebang us
  • VS Code 终端无法识别 PATH 变量

    我在 PATH 中添加了一个目录 但 VS Code 中的终端无法识别我尝试从该目录运行的命令 exe 终端使用 cmd 而不是 power shell 我缺少什么 重新启动我的计算机 它就工作了 显然 VS Code 无法识别这些更改
  • 如何更改 VS Code 中的当前工作目录?

    如何更改 VS Code 中的当前工作目录 比方说 我有一个名为 apps 的父文件夹 其中有一个名为 MyBeautifulApp 的子文件夹 我使用 vscode 打开了 apps 文件夹 我应该在命令行上运行什么命令不仅cd进入 My
  • 当 URL 可在浏览器中访问时,SSH Curl 不起作用

    This post is linked with another post of mine still unsolved Laravel 作曲家更新 连接被拒绝 https stackoverflow com questions 52404
  • 使用终端将信息输入 Javascript

    我想获取 C 程序的输出并将其输入到 javascript 文件的标准输入中 但是我无法使用该方法将任何内容推送到标准输入中 node example js lt test txt 因为我收到以下错误 示例 js 35 stdin setR
  • 安装 oAuth PECL 错误:无法安装,当前用户无法写入频道“pecl.php.net”的 php_dir

    我尝试在 OS X 上安装 oAuth 但在终端中收到此错误 无法安装 当前用户无法写入频道 pecl php net 的 php dir 我如何让它可写 首先找出php dir在哪里 您可以使用 config get 命令来执行此操作 p
  • Windows 控制台“ESC[2J”并没有真正“清除”屏幕

    我知道这类问题经常被问到 但我认为这个问题有点不同 需要被问到 新的 Windows 控制台支持 ANSI VT100 控制代码 ANSI VT100 控制代码 http www termsys demon co uk vtansi htm
  • 在 Mac 上使用 JRE 打开 jar 文件

    我有一个 jar 文件 旨在通过命令行运行 我不打算在运行应用程序的机器上进行任何java开发 我的思考过程是 因此我应该只需要JRE而不是JDK 此外 JDK 大约是 JRE 的 4 倍 我不想下载它 在 Mac 上安装 JRE 时 它不
  • sqlite 插入需要很长时间

    我正在将不到 200 000 行插入到 sqlite 数据库表中 我只是在终端中通过 sqlite3 使用一个非常简单的 sql 文件 我打赌它已经运行了至少 30 分钟 这是正常现象还是我应该关闭该过程并尝试不同的方法 sqlite中的插
  • 什么时候 Thread.sleep(1000) 睡眠时间少于 1000 毫秒?

    在这篇有趣的文章中程序员对时间的看法是错误的 http infiniteundo com post 25509354022 more falsehoods programmers believe about time wisdom 其中之一
  • 如何在 Xamarin.Mac 中执行终端命令并读入其输出

    我们正在编写一个 Xamarin Mac 应用程序 我们需要执行像 uptime 这样的命令 并将其输出读取到应用程序中进行解析 这可以做到吗 在 Swift 和 Objective C 中都有 NTask 但我似乎无法在 C 中找到任何示
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • 在谷歌云上训练神经网络时出现“无法获取路径的文件系统”错误

    我正在使用 Google Cloud 在云上训练神经网络 如下例所示 https cloud google com blog big data 2016 12 how to classify images with tensorflow u
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 如何将环境变量 PACKAGE_DIRS 链接到我的本地私有包?

    我正在尝试设置一个环境变量 以便当我正在处理 Meteor 应用程序时 并且我想将本地私有包链接到我的项目 Meteor 将查找我在本地环境中创建的包目录 我做的第一件事是创建一个包目录并向其中添加一个基本的测试包 Users scotty

随机推荐

  • 如何在 Ubuntu 和 Debian 上删除 PPA 存储库

    个人包档案 PPA 是 Ubuntu 和 Debian 用户安装和更新官方存储库中未提供的软件包的便捷方法 虽然 PPA 是宝贵的资源 但它们也可能会过时 不受支持 甚至可能有害 在这种情况下 了解如何将它们从系统中删除非常重要 在本文中
  • 如何在 Debian 11/10 上安装 Sublime

    崇高的文字是一个功能强大的文本编辑器 也可用于 Linux 系统 它有很多你一定喜欢使用的功能 本教程将帮助您使用个人软件包存档 PPA 在 Debian 11 Debian 10 和 Debian 8 Linux 系统上安装 Sublim
  • /tmp 文件夹 100% 已满 ( cPanel )

    Issue 今天 我发现 tmp 显示 100 已满 但是 从 tmp 删除所有文件后 它仍然显示已满 经过谷歌搜索后 我发现有一些文件从 tmp 文件夹中删除 但仍然被进程使用 占用了所有空间 通常这些文件由apache或mysql使用
  • Linux 中的 tar 命令及实际示例

    tar 命令是 Linux 用户的必备工具 特别是对于那些使用大量文件的用户 tar 命令允许您将多个文件组合成一个存档文件 还可以从存档中提取文件 在本文中 我们将为初学者提供有关 Linux 中 tar 命令基础知识的全面指南 什么是
  • 什么是 SNMP(简单网络管理协议)?

    简单网络管理协议 SNMP 是任何网络管理员工具箱中不可或缺的一部分 作为许多网络监控策略的支柱 SNMP 在维护健康且功能正常的网络方面发挥着关键作用 本文旨在深入研究 SNMP 的复杂性 重点介绍其功能 应用程序以及为什么它在当今的网络
  • 如何在 Ubuntu 20.04 上安装 Ruby

    Ruby 是动态的开源编程语言 其重点是编码简单性和提高生产力 第一个 Ruby 版本 0 95 于 1995 年发布 此后 在过去几年中发布了几个稳定的 Ruby 版本 在撰写本教程时 Ruby 2 7 0 是可用于开发的最新稳定版本 本
  • OpenSSL:使用 SSL 证书、私钥和 CSR

    OpenSSL 是一个强大的 功能齐全的开源工具包 它实现了 SSL 和 TLS 协议以及通用加密库 它广泛用于管理各种系统中的 SSL TLS 证书 私钥和证书签名请求 CSR 在本文中 我们将探讨如何使用 OpenSSL 来处理 SSL
  • 如何通过 PPA 在 Ubuntu 18.04 和 16.04 上安装 Libreoffice 6.2

    LibreOffice 6 2 已发布并可在官方向后移植 PPA用于 Ubuntu 系统上的安装 它是一款免费的办公套件应用程序 与以前的版本相比有许多增强功能 它包含了许多有用的功能 使办公室管理变得非常容易 它是专门针对 Linux 桌
  • 使用 Python 函数

    在编程时 我们经常重复执行相同的任务 例如执行数字加法或使用不同的输入打印相同的语句 这些是一般示例 但对于这些示例 您愿意编写相同的代码 10 次还是只编写一次 这就是函数的目的 它们是仅针对特定任务定义一次的代码片段 并具有可重用的功能
  • 在 HDFS 中创建目录并复制文件 (Hadoop)

    HDFS is the Hadoop分布式文件系统 它是一个用于大型数据集的分布式存储系统 支持容错 高吞吐量和可扩展性 它的工作原理是将数据划分为在集群中的多台机器上复制的块 这些块可以并行写入或读取 从而提高吞吐量和容错能力 HDFS
  • 如何在 Debian 11/10/9 上安装 Gulp.js

    Gulp是一个工具包 可帮助开发人员在开发过程中实现痛苦工作流程的自动化 本教程将帮助您在 Debian 11 Debian 10 和 Debian 9 操作系统上安装 Gulp 第 1 步 安装 Node js 首先 你需要安装node
  • 如何在 Linux 中递归更改文件的权限

    如果您使用 Linux 作为主要操作系统或管理 Linux 服务器 您会遇到尝试创建或编辑文件并收到 权限拒绝 错误的情况 通常 与权限不足相关的错误可以通过设置正确的文件权限或所有权 Linux 是一个多用户系统 对文件的访问是通过文件权
  • 如何显示 MySQL 中所有数据库的列表

    给药时MySQL对于数据库服务器 您要做的最常见的任务之一就是熟悉环境 这涉及诸如列出驻留在服务器上的数据库等任务 显示表格特定数据库的信息或获取有关用户帐户及其权限的信息 本教程介绍如何通过命令行显示 MySQL 或 MariaDB 服务
  • 如何创建 Tar Gz 文件

    tar 存档是一个存储其他文件集合的文件 包括有关这些文件的信息 例如所有权 权限和时间戳 在 Linux 操作系统中 您可以使用tar创建 tar 档案的命令 该命令还可以使用各种压缩程序来压缩档案 其中 gzip 是最流行的算法 按照约
  • 如何在 Ubuntu 20.04 上安装 GCC (build-essential)

    GNU 编译器集合 GCC 是 C C Objective C Fortran Ada Go D 编程语言 很多开源项目 包括Linux内核和GNU工具 都是使用GCC编译的 本文介绍如何在 Ubuntu 20 04 上安装 GCC 在 U
  • 如何在 Debian 9 上安装和使用 FFmpeg

    FFmpeg 是一个免费的开源命令行工具 用于对多媒体文件进行转码 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率以
  • 如何在 Ubuntu 18.04 上安装 Python 3.7

    Python 是世界上最流行的编程语言之一 凭借其简单易学的语法 Python 是初学者和经验丰富的开发人员的绝佳选择 Python 是一种非常通用的编程语言 它可以用作脚本语言来构建游戏 开发网站 创建机器学习算法和分析数据 Python
  • 如何在 CentOS 7 上安装 VLC 媒体播放器

    VLC 是一种流行的开源多媒体播放器和流媒体服务器 它是跨平台的 几乎可以播放所有多媒体文件以及 DVD 音频 CD 和不同的流媒体协议 本教程介绍如何在 CentOS 7 上安装 VLC 媒体播放器 先决条件 您需要以以下身份登录具有 s
  • 如何在 Ubuntu 20.04 上安装和使用 FFmpeg

    FFmpeg 是一个用于处理多媒体文件的免费开源工具集合 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率 捕获流音频
  • Linux 睡眠命令(暂停 Bash 脚本)

    sleep是一个命令行实用程序 允许您将调用进程挂起指定的时间 换句话说 sleep命令将下一个命令的执行暂停给定的秒数 The sleep该命令在 bash shell 脚本中使用时非常有用 例如 在重试失败的操作或在循环内时 在本教程中