gpt4 book ai didi

bash 导出不适用于一个变量

转载 作者:行者123 更新时间:2023-11-29 09:25:44 25 4
gpt4 key购买 nike

有时,当我在 bash 中导出时,它不会给出错误,但它也不会设置环境变量。这就是我的意思:

这个有效:

bash-3.2$ export DYLD=$ABC_HOME
bash-3.2$ env | grep DYLD
DYLD=/Users/my_username/abc_home

但是当我继续时,这些不会:

bash-3.2$ export DYLD_LIBRARY=$ABC_HOME
bash-3.2$ env | grep DYLD
DYLD=/Users/my_username/abc_home

bash-3.2$ export DYLD_L=$ABC_HOME
bash-3.2$ env | grep DYLD
DYLD=/Users/my_username/abc_home

bash-3.2$ export DYLD_=$ABC_HOME
bash-3.2$ env | grep DYLD
DYLD=/Users/my_username/abc_home

知道我可以看什么来解决这个问题吗?

FWIW,其他带下划线的导出按预期工作,但一旦我添加下划线,这似乎开始失败。

最佳答案

这似乎是一种 OS X 保护(可能在 El Capitan 中添加),可防止将这些(潜在危险的)环境变量导出到衍生进程。

This thread在 Apple 开发者论坛上对此进行一些讨论。

官方文档here还简要记录了这一点:

Spawning children processes of processes restricted by System Integrity Protection, such as by launching a helper process in a bundle with NSTask or calling the exec(2) command, resets the Mach special ports of that child process. Any dynamic linker (dyld) environment variables, such as DYLD_LIBRARY_PATH, are purged when launching protected processes.

关于bash 导出不适用于一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33616185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com