В Bash, почему мы можем установить некоторую переменную окружения с помощью PS1 = «что-то», а другим нужно экспортировать SOME_VAR = «что-то»? - PullRequest
7 голосов
/ 05 августа 2010

А зачем нужен export? Куда он экспортирует?

Ответы [ 2 ]

7 голосов
/ 05 августа 2010

Экспортируемые переменные передаются новым вызванным процессам.

Попробуйте установить A=1, затем вызвать новую оболочку, введя "bash", затем echo $A - пустая строка.

Сделайте то же самое, но затем export A=1, вызовите новую оболочку, затем echo $A - вуаля!

отредактируйте с технической стороны и, глядя на ваш вопрос, B = 1на самом деле не устанавливает переменную среды.Чтобы получить real окружение вашей оболочки (в linux), попробуйте

$ xargs -n 1 -0 echo < /proc/$$/environ

, который отличается от вывода export.И как примечание, этот вопрос касается внутренних компонентов bash и обработки его окружения.

1 голос
/ 05 августа 2010

Переменная окружения PS1 предопределена оболочкой bash; следовательно, его не нужно экспортировать, просто установите.

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