Экспортировать переменную в родительский процесс - PullRequest
0 голосов
/ 11 июня 2019

При написании сценариев fish я хотел бы иметь возможность выделять общий код в отдельные сценарии. Что-то похожее на это:

#! /usr/bin/fish

fish setup.sh

// Put rest of my code here.

но, насколько я вижу, нет способа экспортировать переменные в родительские процессы, только в дочерние. Дети могут быть сделаны с set --export; Есть ли способ сделать переменные видимыми для родителей? Я понимаю, что механизмы, вероятно, не похожи, но было бы неплохо.

1 Ответ

1 голос
/ 11 июня 2019

Модель процесса UNIX не позволяет процессу влиять на среду любого другого процесса. Это не ограничение fish. Решение состоит в том, чтобы использовать команду source, чтобы операторы в setup.sh выполнялись в контексте текущего процесса. Если setup.sh не является «рыбным» сценарием, то обычное решение - написать export VAR=val операторов в стандартный вывод, а затем выполнить setup.sh | source -.

.
...