Может ли дочерний процесс передать переменную среды обратно в родительский процесс - PullRequest
2 голосов
/ 22 сентября 2010

Обратите внимание на следующее:

$ cat t.sh
echo "This is from t.sh"
eval "t2.sh"
echo "\$FROM_t2=$FROM_t2"

$ cat t2.sh
echo "This is from t2.sh"
export FROM_t2="env_var_from_t2"

Я хочу прочитать значение "FROM_t2", созданное t2.sh, в t.sh.Возможно ли это?

1 Ответ

4 голосов
/ 22 сентября 2010

Обычный способ сделать это, если вы просто используете сценарии оболочки, - это набрать t2.sh с помощью . t2.sh (обратите внимание на . и пробел в начале команды). Это запускает t2.sh без запуска нового процесса, как будто вы просто вставили t2.sh в t1.sh, поэтому t1.sh может видеть все переменные, которые были изменены. "." это имя встроенной команды оболочки, и после нее вам нужен пробел, как и любой другой команде. Вы также можете написать source вместо ., если хотите быть немного более явным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...