Я озадачен тем, как работают переменные среды. Насколько я знаю, для нового процесса, имеющего некоторые переменные окружения, его родитель должен был выполнить export . Но как насчет всех переменных, когда мы начинаем новую сессию Bash?

Демонстрация:

manos@box:~$ bash
manos@box:~$ env
XDG_VTNR=7
SSH_AGENT_PID=2300
XDG_SESSION_ID=c2
..

Откуда все это?

1 ответ1

0

В этом случае родительский процесс - это ваша текущая оболочка. Он загружает некоторые сценарии инициализации при запуске, они могут экспортировать переменные. Проверьте ~/.bashrc , ~/.profile , ~/.bash_profile , ~/.bash_login и /etc/profile .

Он также может наследовать некоторые экспортированные переменные из родительского процесса обратно в init .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .