每天一个Linux命令(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语句来挂起脚本执行。
sleepusleep的语法: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秒再写文件,读者可以想想是为什么?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值