1

Можно ли как-то импортировать все переменные среды, которые экспортируются подпроцессом, запущенным Fish?

Например, из моего сеанса Fish я запускаю bash ~/.profile , который экспортирует некоторые переменные, и я хочу импортировать их в сеанс Fish.

(Это также будет одним из решений моего другого вопроса ; однако, это будет гораздо более общим. Например, это также будет решением этого вопроса.)

2 ответа2

1

В Linux есть файл /proc/<pid>/environ котором содержатся переменные окружения, разделенные нулями, которые вы можете прочитать и импортировать в свою fish сессию.

0

Для дочернего процесса нет встроенного стандартного способа Unix для изменения переменных среды родительского процесса, но вы можете сами его написать. Вы можете сделать так, чтобы дочерний процесс выгрузил свою среду (которая на самом деле представляет собой просто набор строк в формате «имя = значение»), и отправил его тем или иным образом родителю, а родительский список прошел по списку и экспортировал для сам по себе любые переменные, которые являются новыми или разными (за исключением, конечно, таких вещей, как $SHELL и $PPID ).

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