2015-03-30 2 views
1

Я потратил большую часть времени на попытку получить некоторые простые переменные окружения, которые будут видны графическим приложениям вместе с переменными оболочки. Я пробовал практически все, что я нашел в Интернете, но я могу получить переменную set with launchctl для видимой в bash. У меня есть сценарий, который работает как элемент входа, который делает простой launchctl setenv FOO BAR. Когда я набираю launchctl getenv FOO, он возвращает BAR. Если я набираю echo $FOO, я получаю пустую строку. Я не могу поверить, что яблоко будет так просто так сложно. Я должен что-то упустить. Я?launchctl не задает переменные окружения в yosemite 10.10

ответ

0

При вводе launchctl setenv FOO BAR в терминале вы устанавливаете переменную в окружении launchd. Вам нужно будет перезапустить терминал (все его процессы), чтобы увидеть изменение. launchd передаст вашу новую переменную при запуске терминала, и она будет видна в новом экземпляре с запуском echo $FOO. То же самое относится ко всем приложениям.

+0

Это то, что я ожидал, но это не так. Если я установил переменную в окне терминала, закройте окно и откройте новый терминал, 'echo $ FOO' все равно возвращает пустую строку. У меня даже есть небольшое приложение, которое я создал с помощью редактора сценариев, который запускается при запуске, устанавливая эту переменную. Тот же результат, всегда пустой из командной строки bash. Я тянул свои волосы в течение большей части дня, пытаясь понять, почему .... – cpeddie

+0

Я просто попробовал, и он работает здесь. Обязательно закройте все приложение, а не только окно. – baf

+0

Мой плохой. Я закрывал окно, а не все приложение. :(Сейчас работает как шарм. СПАСИБО! – cpeddie

Смежные вопросы