使用PHP从bash脚本获取返回值

时间:2011-12-30 07:44:15

标签: php shell

如何用PHP演示shell文件?

我有一个名为sync.sh的文件,那么如何在php中运行该文件以及如何在完成执行后获取响应?我认为shell_exec()将有助于触发文件但是如何才能获得脚本完成任务的响应?

2 个答案:

答案 0 :(得分:5)

查看exec()功能。您可以传入一个return_var,它将保存shell脚本中的退出代码。

$out = array();
$status = -1;

exec( '/path/to/sync.sh', $out, $status );

if ( $status != 0 ) {
    // shell script indicated an error return
}

需要注意的一点是,脚本将使用Web服务器的权限运行,而不是您自己的权限。

另外,请务必留意文档与安全相关的警告:

  

当允许将用户提供的数据传递给此函数时,请使用   escapeshellarg()或escapeshellcmd()以确保用户无法欺骗   系统执行任意命令。

答案 1 :(得分:3)

根据documentation

  

返回值

     

执行命令的输出,如果发生错误,则为NULL。

只需获取该函数的返回值。

$result = shell_exec('sync.sh');

$result将包含您想要的内容。