глобальная переменная среды не определена в. sh, но определена в консоли - PullRequest
0 голосов
/ 20 марта 2020

Я использую zsh, я определил новую глобальную переменную среды в ~/.zshrc

echo $0
-zsh

echo $PATH_TO_BINARY из отпечатков консоли /Users/user/some_path

Но если я создам run_me.sh с содержимым echo $PATH_TO_BINARY ничего не печатается.

То же самое в python:

python -c "import os; print(os.environ['PATH_TO_BINARY'])"

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'PATH_TO_BINARY'

1 Ответ

1 голос
/ 20 марта 2020

У вас, похоже, нет переменной окружения. Похоже, у вас есть строка, подобная следующей в .zshrc:

PATH_TO_BINARY=/Users/user/some_path

Это не переменная окружения; это просто обычная переменная оболочки. Чтобы добавить его в среду (чтобы он передавался в среду любых дочерних процессов), вам нужно использовать команду export.

Добавьте следующее в ваш файл .zprofile (не *) 1009 *):

export PATH_TO_BINARY=/Users/user/some_path
...