Linux/UNIX:Bash脚本休眠或者延迟指定的时间
时间:2020-01-09 10:42:23 来源:igfitidea点击:
在Linux或者类似Unix的系统上,如何在bash shell脚本中暂停5秒或者2分钟?您需要使用sleep命令来添加指定时间段的延迟。 gnu/bash sleep命令的语法如下:
sleep NUMBER [SUFFIX]
SUFFIX可以是:
s秒(默认)m分钟。h小时。d天。
请注意,BSD系列操作系统(例如FreeBSD)或者macOS/mac OS X中的sleep命令不带任何后缀参数(m/h/d)。
只需要几秒钟的参数。
因此,像Unix这样的系统 sleep命令的语法是:
sleep NUMBER
例子
要睡眠5秒钟,请使用:
sleep 5
想睡2分钟,使用:
sleep 2m
停止或者睡眠3小时,使用:
sleep 3h
更多示例:
### To sleep for 5 days, use: ## sleep 5d ### To sleep for 1.5 seconds: ## sleep 1.5 ## To sleep for .5 seconds: ### sleep .5
最常见的用法如下:
## run commmand1, sleep for 1 minute and finally run command2 ##
command1 && sleep 1m && command2
## sleep in bash for loop ##
for i in {1..10}
do
do_something_here
sleep 5s
done
## run while loop to display date and hostname on screen ##
while [ : ]
do
clear
tput cup 5 5
date
tput cup 6 5
echo "Hostname : $(hostname)"
sleep 1
done
sleep命令Bash脚本示例
这是一个简单的示例:
#!/bin/bash echo "Hi, I'm sleeping for 5 seconds..." sleep 5 echo "all Done."
在此示例中,创建锁目录。
我在这里使用[/\\:.-]以确保我们不会使用与.o文件相同的名称。
另外,该名称应基于预期的目标文件名,因为这对于并行构建很重要。
...
...
lockdir=`echo "$cofile" | sed -e 's|[/\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
....
..
....
在继续之前,如何将bash shell脚本暂停5秒钟?
使用read命令:
read -p "text" -t 5 read -p "Waiting five secs for Cloudflare to clear cache...." -t 5 echo "Generating pdf file now ...."
输出示例:
Waiting five secs for Cloudflare to clear cache.... Generating pdf file now ....
其中:
-p" text":在超时之前显示文本,不带尾随换行符。-t N:将超时设置为5秒。

