Shell脚本中让进程休眠的方法(sleep用法)
这篇文章主要介绍了Shell脚本中让进程休眠的方法,本文讲解的就是sleep的用法,可以实现睡觉若干秒、若干分钟、若干小时,需要的朋友可以参考下
有时候写Shell的脚本,用于顺序执行一系列的程序。 有些程序在停止之后并没能立即退出,就例如有一个 tomcat 挂了,就算是用 kill -9 命令也还没瞬间就结束掉。
这么如果 shell 还没等其退出就接着执行下一行,这么就出乱子了。 刚知道了原来 shell 也能有 sleep 的参数。
sleep 1 睡眠1秒 sleep 1s 睡眠1秒 sleep 1m 睡眠1分 sleep 1h 睡眠1小时
用法如下,例如重启tomcat:
#!/bin/sh /opt/tomcat/bin/shutdown.sh sleep 3 #等3秒后执行下一条 /opt/tomcat/bin/startup.sh
注意:
在VC中Sleep中的第一个英文字符为大写的"S"
在标准C中是sleep,不要大写..下面使用大写的来说明,,具体用什么看你用什么编译器.简单的说VC用Sleep,别的一律使用sleep.
Sleep函数的一般形式:
Sleep(unsignedlong);
其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
在Linux下,sleep中的“s”不大写
sleep()里面的单位是秒,而不是毫秒。在内核中,sleep的实现是由pause函数和alarm函数两个实现的。
特别注意在Codeblocks环境下是无法使用sleep函数的,因为在windows上Codeblocks采用mingw(Gnu在Window环境下的编译器,可以充分使用WindowsApi)作为编译器,而在stdlib.h中sleep的说明如下:_CRTIMPvoid__cdecl__MINGW_NOTHROW_sleep(unsignedlong)__MINGW_ATTRIB_DEPRECATED;可以认为mingw舍弃了sleep函数,建议用Sleep实现sleep。[1]
举例
#include #include intmain() { inta; a=1000; printf("你"); sleep(a);/*VC使用Sleep*/ printf("好");/*输出“你”和“好”之间会间隔一千秒,不是一秒,sleep()的单位为秒*/ return0; }