从bash脚本执行php文件

时间:2016-08-31 10:17:13

标签: php bash

我的下面的代码可以在PHP的后台中执行bash脚本:

$cmd = "(touch $run_file && java -jar $trimmomatic SE -threads 8 $file $trimmed_file HEADCROP:5 && rm $run_file)";
exec($cmd . " > /dev/null &");

我想要添加的是在完成此命令后执行外部php文件。

我试了这个但是没有用:

$cmd = "(touch $run_file && java -jar $trimmomatic SE -threads 8 $file $trimmed_file HEADCROP:5 && rm $run_file && php -f confirm.php)";
exec($cmd . " > /dev/null &");

如何在完成bash脚本后确保执行confirm.php

2 个答案:

答案 0 :(得分:0)

1)给出php文件的完整路径

2)传递第二个和第三个参数并知道输出和返回值。

$cmd = "(touch $run_file && java -jar $trimmomatic SE -threads 8 $file $trimmed_file HEADCROP:5 && rm $run_file && php -f /var/www/cloud/confirm.php)";

exec($cmd . " 2>&1", $output, $return_var);

print_r($output);
 print_r($return_var);

答案 1 :(得分:0)

最后我解决了我的问题。我在这里发布解决方案,如果有其他人像我一样陷入困境并拼命到达这里。

在我的confirm.php文件中,我包含了另一个包含函数和Class对象的文件。命令行不能执行Class对象中的方法,除非使用echo从原始文件调用它或者将类显式传递给php -r 'include "Class_file.php"; echo MyClass::method(); '之类的命令。由于我的confirm.php文件依赖于此类进行进一步处理,因此在此失败。这篇文章帮助我弄明白了:

How do you execute a method in a class from the command line