Различие между оболочкой и переменными среды

Каковы различия между оболочкой и переменными среды? Где эти переменные хранятся?

24
задан codeforester 1 November 2017 в 22:08
поделиться

2 ответа

Ссылаясь на этот источник ,

Стандартные переменные UNIX разделены на две категории, переменные среды и переменные оболочки. В широком смысле, переменные оболочки применяются только к текущий экземпляр оболочки и используется для кратковременной работы условия; переменные среды имеют более далеко идущее значение, и те, которые установлены при входе в систему, действительны для продолжительность сеанса. От соглашение, переменные среды имеют ВЕРХНИЙ РЕГИСТР и переменные оболочки имеют имена в нижнем регистре.

Чтобы перечислить все переменные среды, используйте printenv , а для перечисления всех переменных оболочки используйте set .

Вы заметите, что переменные среды хранят более постоянное значение, например:

HOME=/home/adam

которое меняется довольно редко, в то время как переменные оболочки хранят локальные, временные, специфичные для оболочки значения, например:

PWD=/tmp

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

Для большинства практических задач установите значения среды, добавив export VARIABLE_NAME = VALUE в ваш файл ~ / .bashrc.

22
ответ дан 28 November 2019 в 23:52
поделиться

Переменная оболочки - это просто частный случай переменной среды. Переменные оболочки наследуются из среды и, возможно, копируются в среду дочерних элементов оболочки в зависимости от используемого синтаксиса: http://www.pixelbeat.org/docs/env.html

-1
ответ дан 28 November 2019 в 23:52
поделиться