Linux

有沒有辦法讓 bash 腳本的輸出在瀏覽器中可見?

  • August 8, 2017

我為程序員製作了一個用於 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 aplication 的所有輸出,腳本在 bash 中執行良好。

通過 php 在瀏覽器中啟動腳本只給我來自迴聲的輸出,比如Start update... Update ended.,但沒有來自 svn 的輸出。問題是當我通過瀏覽器進行更新時腳本也沒有更新我的網站,所以我需要找到問題所在。

所以我想在瀏覽器中查看 svn 的輸出,看看是否通過瀏覽器使用 svn 的東西不起作用。

Bash 腳本具有通過瀏覽器執行它的適當權限,並且具有修改(更新)站點目錄中的文件的適當權限。

切換到您的 Web 伺服器/php 執行的使用者 ID,然後手動執行,

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

看看你得到了什麼。

或者,改變

/usr/bin/svn update

/usr/bin/svn update 2>&1

它將錯誤消息重定向到標準輸出,然後應該顯示在您的網頁中以幫助診斷。

Subversion 使用 stderr 向使用者顯示輸出,所以我應該想像這將解決它:

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

引用自:https://serverfault.com/questions/396852