/ / bash export не работи само за една променлива - bash

износът bash не работи само за една променлива - bash

Понякога, когато експортирам в 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, друг износ с долни черти работи както се очаква, но това изглежда започва да се проваля, след като добавя долната черта в.

Отговори:

6 за отговор № 1

Изглежда, че това е OS X защита (добавена евентуално в El Capitan), която предотвратява експортирането на тези (потенциално опасни) променливи на обкръжението към процеси, които се създават.

Тази тема на Форумите на разработчиците на Apple обсъдете това.

Официалната документация тук също документира това кратко:

Размножаващи се деца процеси на процеси, ограничени от Защита на системната цялост, например чрез стартиране на помощен процес в пакет с NSTask или обаждане на exec(2) команда, нулира специалните портове на Мах на този процес. Всеки динамичен линкер (dyld) променливи на околната среда, като DYLD_LIBRARY_PATH, се изчистват при стартиране на защитени процеси.


-2 за отговор № 2

Опитайте тази :

oldifs=$IFS
IFS=$"n"
export DYLD_LIBRARY=$ABC_HOME
env | grep DYLD
IFS=$oldifs