代码之家  ›  专栏  ›  技术社区  ›  Stephen RC

如何在PHP shell\u exec中设置命令行环境变量

  •  9
  • Stephen RC  · 技术社区  · 14 年前

    export VARIABLE=value
    

    但是,要运行脚本,我必须执行以下操作:

    <?PHP
    $sOutput = shell_exec("export VARIABLE=value && my_command_goeth_hereth");
    

    每次运行任何命令时都要导出变量,这有点毫无意义。

    这是唯一的方法,还是我错过了一个更简单的方法?

    2 回复  |  直到 8 年前
        1
  •  18
  •   zneak    9 年前

    putenv .

    putenv("VARIABLE=value");
    
        2
  •  6
  •   timdev    14 年前

    不仅仅是:

    <?PHP
    shell_exec('SOMEVAR=SOMEVAL /some/program');
    

    你有本事吗?

    如果您正在运行多个shell脚本,那么 putenv 是你的朋友,正如兹尼克所指出的。

    编辑

    环境.php:

    <?PHP
    echo $_ENV['FOO'];
    echo "\n";
    

    运行环境.php:

    <?PHP
    echo shell_exec('FOO=bar php env.php');
    

    $ php runenv.php