2011-01-20 130 views
4

我想設置一個bash環境變量使用PHP(從命令行)沒有成功。設置環境變量從外部bash

$buff=array(); 
$buff[]="echo VARTESTKEY=VARTESTVALUE"; 
file_put_contents('script.sh', implode("\n",$buff)); 
system('eval "$(bash script.sh)"'); 

,但仍然沒有:

$buff=array(); 
$buff[]="VARTESTKEY=VARTESTVALUE"; 
$buff[]="export VARTESTKEY"; 
file_put_contents('script.sh', implode("\n",$buff)); 
system('source script.sh'); 

我使用腳本來輸出,得到evaled鍵值甚至嘗試。

任何想法?我不介意使用任何其他工具(perl,python,c等),只要它可以通過從PHP系統函數調用來完成工作。

+0

你得到任何訪問權限的錯誤?檢查你的error.log。 – powtac 2011-01-20 12:59:36

+0

對不起,沒有提到它,但這是來自命令行。 – zaf 2011-01-20 13:00:50

回答

4

在運行另一個bash腳本之前是否需要這個環境變量?

你可以使用putenv("KEY=VAL");

居:

<?php 
putenv("ASD=LOL"); 
system("echo \$ASD"); 
?> 

編輯:

<?php 
echo "VARTESTKEY=VARTESTVALUE"; 
?> 

啓動它:

$ eval `php script.php` && echo $VARTESTKEY