Phing exec命令设置环境变量

tom*_*tom 7 phing command-line exec environment-variables

我正在尝试使用phing在构建脚本中设置环境变量.这通常是完成命令行,如下所示:

export MY_VAR=value
Run Code Online (Sandbox Code Playgroud)

在Phing我做了以下但是它不起作用.

<exec command="export MY_VAR=value" />
Run Code Online (Sandbox Code Playgroud)

And*_*y H 10

我发现这是一个相当古老的问题,但我认为它没有以最好的方式得到回答.如果你想导出一个shell变量,例如说你正在从phing运行phpunit并想在调用phpunit之前进行导出,请尝试:

<exec command="export MY_VAR=value ; /path/to/phpunit" />
Run Code Online (Sandbox Code Playgroud)

只需执行导出并在同一个exec标记内调用您的命令.如图所示,使用分号分隔export语句和shell可执行文件.您的脚本将能够使用标准的php函数访问该值:

$myVar = getenv('MY_VAR');
Run Code Online (Sandbox Code Playgroud)


Chr*_*sen 6

大胆声明: 没有办法在PHP中设置/导出(Unix)shell变量,以便在启动php脚本的范围内可见.

php myfile.php (does putenv or shell_exec('export foo=bar');)
echo $foo
Run Code Online (Sandbox Code Playgroud)

什么都不会回报.由于PHP无法做到这一点所以也无法发表意见.

在多个脚本运行中访问shell环境变量(如果它是你想要的那样)似乎也是一个不理想的设计决策,非常有状态.

除此之外,我敦促你坚持学习并学习精益课程.Phing在某种程度上帮助无国籍思维.