When I set an environment variable
launchctl setenv FOO test
I can fetch the value by
launchctl getenv FOO
which returns me 'test', but a simple
echo $FOO
doesn't substitute, the result is empty. In same terminal as well as in new terminal.
Background: Yosemite 10.10 doesn't support /etc/launchd.conf anymore for system wide settings, so Setting environment variables via launchd.conf no longer works in OS X Yosemite/El Capitan/macOS Sierra? looks pretty promising, but I need the access to the env vars via $VARNAME
, which doesn't work in my case.
As I wrote in section Issues / problems here in order your env variables were correctly taken by applications after system reboot you will need:
This happens due to Apple denies explicit ordering of loaded services, so env variables are registered in parallel with processing of the "reopen queue".