Установить переменную окружения снаружи bash - PullRequest
4 голосов
/ 20 января 2011

Я пытаюсь установить переменную окружения bash, используя PHP (из командной строки), но безуспешно.

$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 Ответ

4 голосов
/ 20 января 2011

Вам нужны переменные этой среды перед запуском другого скрипта bash?

Вы можете просто использовать putenv("KEY=VAL");

Es:

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

Edit:

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

запустить его как:

$ eval `php script.php` && echo $VARTESTKEY
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...