从外部bash设置环境变量

时间:2011-01-20 12:58:13

标签: php bash environment-variables

我正在尝试使用PHP(从命令行)设置bash环境变量但没有成功。

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

我甚至尝试使用脚本输出被篡改的键值:

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

但仍然没有。

有什么想法吗?我不介意使用任何其他工具(perl,python,c等),只要它可以通过从PHP系统函数调用来完成它的工作。

1 个答案:

答案 0 :(得分:4)

在运行另一个bash脚本之前,您是否需要此环境变量?

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

居:

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

编辑:

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

将其发布为:

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