我正在尝试使用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系统函数调用来完成它的工作。
答案 0 :(得分:4)
在运行另一个bash脚本之前,您是否需要此环境变量?
您可以使用putenv("KEY=VAL");
居:
<?php
putenv("ASD=LOL");
system("echo \$ASD");
?>
编辑:
<?php
echo "VARTESTKEY=VARTESTVALUE";
?>
将其发布为:
$ eval `php script.php` && echo $VARTESTKEY