2011-08-23 100 views
0

我有以下脚本确保每3秒调用一次.php文件。如何在特定时间停止执行.sh脚本?

#!/bin/bash 

for ((i=0; i<43200; i++)) 
do 

/usr/bin/php /var/www/vhosts/mydomain.com/httpdocs/somefile.php 


sleep 3 
done 

我希望能够停止脚本excecution如果时间是23点58分59秒

任何人都可以帮我吗?

感谢,卓然

回答

-2

我觉得这是不使用脚本语言如Python和Perl没有直接的方法。

这里如果哟想已经有实现TE perl脚本:

http://www.cyberciti.biz/faq/shell-scripting-run-command-under-alarmclock/


利用率摘要:

创建一个文件installTimeout.sh包含以下内容:

wget http://pilcrow.madison.wi.us/sw/doalarm-0.1.7.tgz 
tar -zxvf doalarm-0.1.7.tg 
cd doalarm-0.1.7 
make 

并运行命令:

source installTimeout.sh 

现在它对您来说是透明的。 当你想给一个超时脚本哟只需要运行:

doalarm 20 your script 

最佳, 科技教育

+0

感谢Ste,但所有代码看起来都像希腊语。我不知道要实现我的目标。 – Zoran

+1

好的...我试着做一个总结,至少你可能会使用它。 – Stefano

+0

他希望你安装一个单独的工具,在特定的时间段之后会杀死你的脚本。这是不必要的;你可以运行'cron'作业来在指定的时间杀死另一个脚本,但这是一种暴力方式。另外,如果你不知道你什么时候开始写剧本,你怎么知道你应该超时多久?是的,可以计算时间偏移量,但这是失控的。 – tripleee

2
case `date +%H%M` in 2359) break ;; esac 

编辑:我发现了零填充的日期格式的字符串是不便携式,所以我把它拿出来了。无论如何,这在这种情况下没有用或不必要。

+0

嗨tripleee。很少有问题......关闭了,但没有打开,为什么两个;;和esac是什么意思? – Zoran

+0

阅读shell编程的基本介绍,找到'case'关键字。是的,如果你是新手,这个语法可能看起来有点陌生。 – tripleee

+0

嗨我现在有以下脚本,它不会停止执行... [code]#!/ bin/bashcase'date +%0H%0M'in 1044)break ;; ESAC 为((I = 0;我<43200;我++)) 做 的/ usr/bin中/ PHP的/var/www/vhosts/http://www.mysite.com/httpdocs/myfile.php 睡眠3 完成[代码]和脚本似乎不会停止...继续调用php文件。我做错了什么?任何帮助? – Zoran

0

再次问我。

,因为你的脚本有没有开关输入youmcan尝试推出侑脚本方式如下:

./yourscript.sh & sleep 10 && kill %1 && fg 

试试看。

Se