LINUX.ORG.RU

История изменений

Исправление Datt_, (текущая версия) :

Ну из того что я понял, в bourne shell нет автоматического экспорта, из-за чего после изменения значения переменной окружения это никак не скажется на переменной окружения, а чтобы сказалось - нужно вручную экспортить.

в bash же если разок экспортнуть переменную, то она автоматом будет экспортироваться во всех дочерних и поддочерних процессах.

Но это ломает мне логику вот в чём -

When a program is invoked it is given an array of strings called the environment.

Когда программа запускается, ей передаются переменные, называемые окружением.

Т.е. окружением называются переменные, задаваемые программе при запуске. И это мне говорил кто-то в другом месте. НО! в строчке bourne shell

none of these affects the environment unless the export com mand

сказано, что изменения переменной не повлияют на окружение, пока не сделать экспорт. Но как можно повлиять на окружение, если программа уже запущена? То есть её окружение уже задано.

А export «добавляет» переменную в окружение будущих дочерних процессов, но не в текущее окружение.

Как-то всё это запутано. То на окружение влиять нельзя, потому что оно задано при запуске, можно влиять только на окружения дочерних, то «не будет изменений в окружении, пока вы не сделаете export». Но ведь и при этой ситуации тоже не будет изменений в окружении..

Исходная версия Datt_, :

Ну из того что я понял, в bourne shell нет автоматического экспорта, из-за чего после задания переменной и её экспорта, в дочерних процессах эту переменную тоже нужно экспортить, чтобы она была видна поддочерним процессам.

в bash же если разок экспортнуть переменную, то она автоматом будет экспортироваться во всех дочерних и поддочерних процессах.

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