Странное поведение для setenv & getenv в OS X Yosemite
когда я устанавливаю переменную среды
launchctl setenv FOO test
Я могу получить значение
launchctl getenv FOO
который возвращает мне "test", но простой
echo $FOO
не подставляется, результат пуст. В том же терминале, что и в новом терминале.
Фон: Yosemite 10.10 больше не поддерживает /etc/launchd.conf для системных настроек, поэтому Установка переменных среды через launchd.conf больше не работает в OS X Yosemite/El Capitan/macOS Sierra? выглядит довольно многообещающе, но мне нужен доступ к env vars через $VARNAME, который не работает в моем случае. У кого-нибудь есть идея?
Cheerio,
Крис
Ответы
Ответ 1
Как я писал в разделе Проблемы/проблемы здесь, чтобы ваши переменные env были правильно приняты приложениями после перезагрузки системы, вам понадобится:
- логин дважды: login = > logout = > login
- или закрыть и повторно открыть приложения вручную, где должны быть приняты переменные env
- или НЕ использовать функцию "Повторно открыть окна при регистрации".
Это происходит из-за того, что Apple отказывает в явном упорядочении загруженных сервисов, поэтому переменные env регистрируются параллельно с обработкой "повторной очереди".