📅  最后修改于: 2023-12-03 15:17:22.198000             🧑  作者: Mango
在编写脚本时,我们有时需要在不需要处理数据时暂停脚本的执行。在这种情况下,我们可以使用 sleep
命令。sleep
命令会使脚本暂停执行指定的秒数或时间。
sleep NUMBER[SUFFIX]
其中,NUMBER
表示需要暂停的秒数,SUFFIX
表示时间单位。SUFFIX
可选的值包括 s
(秒)、m
(分)、h
(小时)、d
(天)等。如果没有指定时间单位,则默认单位为秒。
下面的脚本每隔 5 秒钟打印一次 "Hello World!":
#!/bin/bash
while true
do
echo "Hello World!"
sleep 5
done
上面的脚本会一直循环执行,直到手动终止该脚本。在每次执行完 echo
命令后,使用 sleep 5
命令暂停了 5 秒钟,然后再次执行 echo
命令。
下面的脚本等待用户输入,如果输入为 "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."。
下面的脚本使用 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..."。