📜  Linux 中的 sleep 命令和示例(1)

📅  最后修改于: 2023-12-03 15:17:22.198000             🧑  作者: Mango

Linux 中的 sleep 命令

在编写脚本时,我们有时需要在不需要处理数据时暂停脚本的执行。在这种情况下,我们可以使用 sleep 命令。sleep 命令会使脚本暂停执行指定的秒数或时间。

语法
sleep NUMBER[SUFFIX]

其中,NUMBER 表示需要暂停的秒数,SUFFIX 表示时间单位。SUFFIX 可选的值包括 s(秒)、m(分)、h(小时)、d(天)等。如果没有指定时间单位,则默认单位为秒。

示例
示例 1

下面的脚本每隔 5 秒钟打印一次 "Hello World!":

#!/bin/bash

while true
do
    echo "Hello World!"
    sleep 5
done

上面的脚本会一直循环执行,直到手动终止该脚本。在每次执行完 echo 命令后,使用 sleep 5 命令暂停了 5 秒钟,然后再次执行 echo 命令。

示例 2

下面的脚本等待用户输入,如果输入为 "y" 或 "Y",则继续执行脚本,否则暂停执行 60 秒钟。

#!/bin/bash

echo "Do you want to continue?"
read input

if [ "$input" == "y" ] || [ "$input" == "Y" ]
then
    echo "Continuing..."
else
    echo "Pausing for 60 seconds..."
    sleep 60s
fi

echo "Done."

上面的脚本首先提示用户输入是否要继续执行脚本,如果用户输入为 "y" 或 "Y",则输出 "Continuing..."。否则,输出 "Pausing for 60 seconds...",然后使用 sleep 60s 命令暂停执行 60 秒钟。最后,输出 "Done."。

示例 3

下面的脚本使用 sleep 命令实现循环等待功能,每隔 10 秒钟检查一次一个文件是否存在,如果存在则继续执行脚本。

#!/bin/bash

file_path="/path/to/file"

while [ ! -f "$file_path" ]
do
    echo "Waiting for file to be available..."
    sleep 10s
done

echo "File is available. Continuing..."

上面的脚本使用 while 循环检查指定路径下的文件是否存在,如果不存在则输出 "Waiting for file to be available...",然后休眠 10 秒钟(使用 sleep 10s 命令)。一旦文件存在,则跳出循环,输出 "File is available. Continuing..."。