Linux
有沒有辦法讓 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 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');