PHP exec $ PATH变量缺少元素

当我在命令行中回显$ PATH时,它将返回

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/MAMP/Library/bin:/usr/local/git/bin:/usr/X11/bin

当我执行这个PHP代码

exec('echo $PATH; whoami; less /etc/paths; 2>&1')

我懂了

string 'echo $PATH; whoami; less /etc/paths; 2>&1' (length=56)

array

0 => string '/usr/bin:/bin:/usr/sbin:/sbin' (length=29)

1 => string 'eric' (length=4)

2 => string '/usr/bin' (length=8)

3 => string '/bin' (length=4)

4 => string '/usr/sbin' (length=9)

5 => string '/sbin' (length=5)

6 => string '/usr/local/bin' (length=14)

7 => string '/Applications/MAMP/Library/bin' (length=30)

8 => string '/usr/bin:/bin:/usr/sbin:/sbin' (length=29)

这是在Mac OS X上。谁能告诉我为什么我的最后两个路径元素丢失了?

回答:

Mac OS

X上的环境变量由不同的机制来设置,具体取决于启动代码或其父进程的方式。为了确保从交互式外壳程序启动的项目和由WindowServer启动的项目具有相同的路径,您需要使〜/

.MacOSX / environment.plist与.profile(或.cshrc)中设置的内容保持同步。

以上是 PHP exec $ PATH变量缺少元素 的全部内容, 来源链接: utcz.com/qa/398186.html

回到顶部