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


Get return value from a bash script with PHP

如何使用PHP执行shell文件?

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

看一下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()以确保用户不会欺骗

根据文档:

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

获取函数的返回值

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

$result将包含您想要的内容