如何写个while循环。让程序在120秒之内每秒一执行。

sh/bash/dash/ksh/zsh等Shell脚本
回复
liucheng1513
帖子: 62
注册时间: 2010-09-08 18:17

如何写个while循环。让程序在120秒之内每秒一执行。

#1

帖子 liucheng1513 » 2010-11-28 11:23

如何写个while循环。让程序在120秒之内每秒一执行。程序是\cp -a /home/work/tmp/*.log /var/apache-tomcat-5.5.20/webapps/bustv/dl_stat
换句话就是在120秒内不断的让tmp的文件向dl_stat内复制。
gzbao9999
帖子: 627
注册时间: 2008-11-08 18:34

Re: 如何写个while循环。让程序在120秒之内每秒一执行。

#2

帖子 gzbao9999 » 2010-11-28 11:46

类似如此吧 如果想一秒执行一次,里面加个sleep 1, 不过很难保证一定1秒执行一次;

代码: 全选

startime=`date +%s`;
while true;do
now=`date +%s`;
s=$[now-startime];
echo $s; 
if [ $s -gt 120 ] ;then 
break;
fi 
done
气血鼓荡,身体发胀,偶飘上头,三时舒畅
phymal
帖子: 5
注册时间: 2009-04-03 10:45

Re: 如何写个while循环。让程序在120秒之内每秒一执行。

#3

帖子 phymal » 2010-11-28 21:02

while 1;do
\cp -a /home/work/tmp/*.log /var/apache-tomcat-5.5.20/webapps/bustv/dl_stat
sleep 120
done

不知道这样行不行啊。
qq405165798
帖子: 79
注册时间: 2008-02-24 14:39

Re: 如何写个while循环。让程序在120秒之内每秒一执行。

#4

帖子 qq405165798 » 2010-11-29 19:43

liucheng1513 写了:如何写个while循环。让程序在120秒之内每秒一执行。程序是\cp -a /home/work/tmp/*.log /var/apache-tomcat-5.5.20/webapps/bustv/dl_stat
换句话就是在120秒内不断的让tmp的文件向dl_stat内复制。
shell不会写,算法一说,应该能满足你的要求

下面循环120次
cp src dis &
sleep 1

注意&是精髓.把cp放后台执行,可以保证sleep 能比较精确的暂停1S
Havanna
帖子: 813
注册时间: 2008-04-20 12:13
系统: OS X, Gentoo, Win8.1
来自: Shanghai, PRC

Re: 如何写个while循环。让程序在120秒之内每秒一执行。

#5

帖子 Havanna » 2010-12-01 13:52

本身系统就有计划任务,为什么不去使用?
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: 如何写个while循环。让程序在120秒之内每秒一执行。

#6

帖子 xzap » 2010-12-03 10:18

代码: 全选

 i=120;while ((i != 0));do cp -a /home/work/tmp/*.log /var/apache-tomcat-5.5.20/webapps/bustv/dl_stat;((i--));sleep 1;done
回复