您的位置:首页 > 运维架构 > Linux

每天一个Linux命令(sleep&usleep)

2015-07-16 20:11 351 查看
sleep及usleep命令简介

具体实现

使用

sleep及usleep命令简介

sleep命令能够产生以秒为单位的脚本挂起时间

usleep命令能够产生以微妙(百万分之一秒)为单位的脚本挂起时间

具体实现

linux中的sleep和usleep的实现是调用
unistd.h
头文件中的

unsigned sleep(unsigned)
int usleep(unsigned long)
两个函数实现的。

下面给出sleep命令的简易实现:

int main(int argc,char* argv[]){
if(argc<2){
show_usage();
}
sleep(atoi(*(++argv)));
return 0;
}


usleep命令的简易实现:

int main(int argc,char* argv[]){
if(argc<2){
show_usage();
}
usleep(atoi(*(++argv)));
return 0;
}


使用

在编写shell脚本时候,如果希望在执行一个命令之后,等待几秒(或几微妙)之后再去执行另外一个命令,这个时候就可以在这两个命令之间插入一条sleep语句来挂起脚本执行。

sleep
usleep
的语法:
sleep(usleep)     time


这里的time就是你需要脚本挂起的时间,其中sleep命令的挂起时间单位为秒,usleep命令的挂起时间单位为微妙。

如:

echo "hello,world1">>testfile
sleep 2
echo "hello,world2">>testfile


上述脚本是将
hello,world1
字符串输出到testfile文件后,隔2秒钟后再将
hello,world2
字符串输出到testfile文件。

在使用sleep时也有一点也需要特别注意,就是脚本中的sleep语句后不要跟有
&
符号,不然sleep是不会起作用的。

echo "hello,world">>testfile
sleep 2 &
echo "hello,world">>testfile


可以把上述命令写到脚本里并执行,发现脚本并不会挂起2秒再写文件,读者可以想想是为什么?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux-shell