菜鸟询问,shell 不想使用sleep控制时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟询问,shell 不想使用sleep控制时间相关的知识,希望对你有一定的参考价值。

不想使用sleep,
for
do
。。。。
sleep 300
done
能否有其他方式,控制时间来应对循环?谢谢!
另外也不用ping的方式
不想使用crontab,只想在脚本实现。

sleep : 默认以秒为单位。
usleep : 默认以微秒为单位。
不想用命令控制也可以。用脚本

a=`date +%s`
while true
do
b=`date +%s`

c=`expr $b - $a`

if [ $c -gt 300 ];then

break

fi

done
参考技术A sleep 300 等待300秒这么长啊

那首先要知道你为什么需要等待,你在等待什么。本回答被提问者和网友采纳
参考技术B ……我觉得你是不是需要cron而不是用这种 参考技术C linux有个计划任务crontab,可以定时执行某些程序。你可以自己找资料看一下。

shell 中给命令设置超时时间

shell 中给命令设置超时时间

在我们写 shell 脚本的时候,有时候想给一个命令设置一个超时时间,当命令执行了多长时间还没有执行完就强制终止;我们可以采用如下方式

timeout 3 sleep 30

当 sleep 执行 3 秒的时候就会终止。

timeout 指令介绍

运行指定的命令,如果在指定时间后仍在运行,则杀死该进程。用来控制程序运行的时间。

使用方法

timeout [选项] 数字[后缀] 命令 [参数]...

后缀”s”代表秒(默认值,”m”代表分,”h”代表小时,”d”代表天。

选项介绍

长选项必须使用的参数对于短选项时也是必需使用的。
  -s, --signal=信号
        指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。
        查看"kill -l"以获得信号列表
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

如果程序超时则退出状态数为124,否则返回程序退出状态。
如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。
对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。

以上是关于菜鸟询问,shell 不想使用sleep控制时间的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本编程之循环控制语句(continue/break/sleep)

菜鸟关于Windows消息循环的疑问

shell 中给命令设置超时时间

shell循环

八管道符和作业控制shell变量环境变量配置文件

adb shell 命令使 Android 软件包卸载对话框出现