Что удар-builtins 'устанавливают', и 'экспорт' делают?

В целях исследования я сказал бы, что OpenBSD, чтобы обнаружить, насколько стабильный, безопасный и простой это может быть. Основами Linux будет Slackware.

Но это в противоречии с Вашими целями программирования. Так зная о HP Unix, AIX, Солярисе, Linux Debian, RH и SuSE я рекомендовал бы использовать Linux CentOS 5.7 (или более новый - держат его в курсе через вкусный крон) Вам.

CentOS 5 двоичный совместимый с RHEL 5 и существует много инструментов вокруг для el5-ответвления (используйте rpmforge в качестве другого хранилища - посмотрите страницу CentOS об этом).

48
04.04.2013, 12:39
2 ответа

export экспорт в детей текущего процесса, по умолчанию они не экспортируются. Например:

$ foo=bar
$ echo "$foo"
bar
$ bash -c 'echo "$foo"'

$ export foo
$ bash -c 'echo "$foo"'
bar

set, с другой стороны, наборы окружают атрибуты, например, позиционные параметры.

$ set foo=baz
$ echo "$1"
foo=baz

Отметьте это baz не присваивают foo, это просто становится литеральным позиционным параметром. Существует много других вещей set может сделать (главным образом опции оболочки), видеть help set.

Что касается печати, export названный без аргументов печатает все переменные в среде оболочки. set также переменные печати, которые не экспортируются. Это может также экспортировать некоторые другие объекты (хотя необходимо отметить, что это не портативно), посмотрите help export.

53
27.01.2020, 19:34
  • 1
    Спасибо, который является очень полезным ответом. Однако, когда я установил http_proxy только с http_proxy=abc.com, это видимо к дочерним процессам, например, работающий wget без меня экспортирующий его. Как это может быть? –  mydoghasworms 04.04.2013, 12:56
  • 2
    @mydoghasworms Две возможных причины. Один, Вы выполняете команду как foo=bar command. Это - неявный экспорт для единственной команды. Вторая возможность - это http_proxy уже экспортирован в Вашей среде перед изменением ее. А-ч –  Chris Down 04.04.2013, 12:58
  • 3
    да, Вы правы. Блестящий, Спасибо! –  mydoghasworms 04.04.2013, 13:06

Посмотрите help set: набор используется для установки атрибутов оболочки и позиционных атрибутов.

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

6
27.01.2020, 19:34

Теги

Похожие вопросы