Команда экспорта UNIX

113

Я пытаюсь понять использование команды export.

Я попытался использовать man export, но для этой команды нет руководства.

Кто-нибудь может помочь мне понять использование export в UNIX?

  • 0
    это очень странно, что для этого нет справочной страницы. Я тоже не вижу.
Теги:

4 ответа

161
Лучший ответ

При выполнении программы дочерняя программа наследует переменные среды от родителя. Например, если для $HOME установлено значение /root в родительском элементе, тогда дочерняя переменная $HOME также установлена ​​на /root.

Это относится только к переменной среды, помеченной для экспорта. Если вы установите переменную в командной строке, например

$ FOO="bar"

Эта переменная не будет видна в дочерних процессах. Если вы не экспортируете его:

$ export FOO

Вы можете объединить эти два оператора в один в bash (но не в старой школе sh):

$ export FOO="bar"

Вот краткий пример, показывающий разницу между экспортированными и неэкспортируемыми переменными. Чтобы понять, что происходит, известно, что sh -c создает процесс дочерней оболочки, который наследует родительскую оболочку.

$ FOO=bar
$ sh -c 'echo $FOO'

$ export FOO
$ sh -c 'echo $FOO'
bar

Примечание.. Чтобы получить справку по встроенным командам оболочки, используйте help export. Встроенные оболочки - это команды, которые являются частью вашей оболочки, а не независимыми исполняемыми файлами, такими как /bin/ls.

12

Unix

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

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

export VARIABLE=value  # for Bourne, bash, and related shells
setenv VARIABLE value  # for csh and related shells

Вы можете посмотреть this в

  • 3
    Добро пожаловать в StackOverflow. Обратите внимание, что для классической оболочки Bourne потребуется: VARIABLE=value; export VARIABLE а не назначайте и экспортируйте сразу. Команда set в C Shell предназначена для переменных оболочки, а не переменных среды; setenv является аналогом export . Команда set в оболочках, полученных из Bourne, печатает все переменные, а не только экспортируемые переменные (окружения). Исторически, по крайней мере, команда env отделена от оболочки (не является встроенной), хотя ее можно легко превратить во встроенную. Он устанавливает среду для конкретной команды, а не оболочку, которая ее запускает.
2

export - встроенная команда bash shell и другая Варианты оболочки Bourne. Он используется для обозначения переменной оболочки для экспорта дочерних процессов.

1

export используется для установки переменных среды. Например:

export EDITOR=pico

Устанавливает текстовый редактор по умолчанию как команду pico.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню