有没有办法让 bash 脚本的输出在浏览器中可见?

有没有办法让 bash 脚本的输出在浏览器中可见?

我为程序员编写了一个 svn update 脚本。该脚本在 bash 中运行良好。程序员希望从浏览器(通过他们的管理员站点)执行它。

脚本非常简单(其唯一示例不完全相同)


#!/bin/bash
echo "Start update..."

cd /dir/with/site

/usr/bin/svn update
echo "Update ended."

 

在浏览器中,bash 脚本通过 php 文件启动,如下所示:


echo system('/updatesvnscript.sh');

在 bash 中执行后,我可以看到来自 echos 和 svn 应用程序的所有输出,脚本在 bash 中运行良好。

通过 php 在浏览器中启动脚本时,我只得到 echos 的输出,例如Start update... Update ended.,但没有 svn 的输出。问题是,当我通过浏览器进行更新时,脚本也不会更新我的网站,所以我需要找出问题所在。

所以我想在浏览器中查看 svn 的输出,以查看通过浏览器使用 svn 是否有某些功能无法正常工作。

Bash 脚本具有通过浏览器执行的适当权限,并且具有修改(更新)站点目录中文件的适当权限。

答案1

切换到你的 web 服务器/php 运行的用户 ID,然后手动运行,

cd /dir/with/site
/usr/bin/svn update

看看你得到了什么。

或者,改变

/usr/bin/svn update

/usr/bin/svn update 2>&1

它会将错误消息重定向到标准输出,然后该标准输出将显示在您的网页上以帮助进行诊断。

答案2

Subversion 使用 stderr 向用户显示输出,因此我认为这可以修复它:

echo system('/updatesvnscript.sh 2>&1');

相关内容