我有一个bash脚本,它正在执行php脚本。我的bash知识很差,我需要执行那个PHP脚本大约100次。我只需复制粘贴执行行:
#!/bin/bash
php /home/me/public_html/script/stats.php 1 2 3
php /home/me/public_html/script/stats.php 1 2 3
php /home/me/public_html/script/stats.php 1 2 3
...1,2,3是我传递给php脚本的参数。
所有这些都很好,但是在第8行bash脚本挂起之后,就不会执行下一步了.所以我得再重启一次。
有什么不对的?
UPD
PHP (不是完整的脚本,而是一般的想法)
它从检索命令行args开始。将它们传递给在msql查询中使用它们的函数。msql查询的每个结果都传递给另一个函数,该函数使用该结果形成一个url,从中检索逗号分隔字符串并处理它,将其拆分为数组并插入到另一个表中。main函数完成msql链接关闭后,脚本退出。
<?php
if (($argv[1] > 0) && ($argv[2] > 0) && ($argv[3] > 0)) {
echo "All good! Here we go: ";
echo "\n";
gatherstats($argv[1],$argv[2],$argv[3]);
} else {
echo "no\n";
}
function gatherstats($y,$m,$cl){
Require 'db.php';
// SQL QUERY HERE AND A LOOP TO PROCESS RESULTS
//CALLS UP NEXT FUNCTION FOR EACH RESULT
crawl($a,$b,$c);
}
function crawl($atr,$year,$month) {
//forms up specific url from passed vars and processes it
}
mysqli_close($link);
?>发布于 2012-11-14 23:24:10
也许第8 php脚本调用出于某种原因而挂起。您可以这样做,以避免输入命令100次:
for i in {1..100}; do
php /home/me/public_html/script/stats.php 1 2 3 > some_log_file_$i.log
done向php脚本中添加一些print语句,并检查日志中的8调用,以查看发生了什么。如果要求不停止调用(即使其中一个失败),则可以使用
for i in {1..100}; do
php /home/me/public_html/script/stats.php 1 2 3 > some_log_file_$i.log &
donehttps://stackoverflow.com/questions/13389102
复制相似问题