NetworkManager имеет свое собственное место для рычагов в /etc/NetworkManager/dispatcher.d/
. Сценарии там называют каждый раз, когда интерфейс изменяет состояние, см. страницу справочника NetworkManager для всех окровавленных деталей.
export foo=bar
не поддерживался оболочкой Bourne (старая оболочка 70-х годов, от которой происходят современные реализации sh
, такие как ash / bash / ksh / yash / zsh) . Это было введено ksh
.
В оболочке Bourne вы бы сделали:
foo=bar export foo
или:
foo=bar; export foo
или с set -k
:
export foo foo=bar
Теперь поведение:
export foo=bar
варьируется от оболочки к оболочке .
Проблема в том, что присваивания и простые аргументы команды анализируются и интерпретируются по-разному.
foo = bar
выше интерпретируется некоторыми оболочками как аргумент команды, а другими - как присваивание (иногда).
Например,
a='b c'
export d=$a
интерпретируется как:
'export' 'd=b' 'c'
с некоторыми оболочками ( ash
, более старые версии zsh
(в эмуляции sh), yash
]) и:
'export' 'd=b c'
в других ( bash
, ksh
).
Хотя
export \d=$a
или
var=d
export $var=$a
будут интерпретироваться одинаково во всех оболочках (как 'export' 'd = b' 'c'
), потому что обратная косая черта или знак доллара останавливают те оболочки, которые поддерживают это рассматривать эти аргументы как уступки.
Если цитируется сам экспорт
или результат некоторого расширения (даже частично), в зависимости от оболочки, он также перестанет получать особую обработку.
См. « Нужны ли кавычки для присвоения локальной переменной? » для получения более подробной информации.
Синтаксис Bourne:
d=$a; export d
интерпретируется одинаково всеми оболочками без двусмысленности ( d = $ a export d
также будет работать в оболочке Bourne и оболочках, совместимых с POSIX, но не в последних версиях zsh
, если не используется эмуляция sh
).
Все может быть намного хуже. См., Например, недавнее обсуждение bash
, когда задействованы массивы.
(ИМО, было ошибкой вводить эту функцию ).
Это не басизм, а позы, не соответствующий синтаксисом. На самом деле он на самом деле начался как кшизм довольно давно и был позже был принят практически во всех оболочках Bourne Syntax. Единственным пресловутым исключением является / BIN / SH
на Solaris 10 и старше, которое прилипает к устаревшему синтаксису оболочки Bourne. Надеюсь, SOLARIS 11 использует SCOLL, совместимую POSIX как / Bin / Sh
.
Кстати, Экспорт
был уже встроенную команду в устаревшей оболочке Bourne, настолько гудящую для экспорта: не найдено не найдено
Вот наследие поведение оболочки Bourne, когда экспортируется
в сочетании с воздействием:
$ export var=22
var=22: is not an identifier
для ностальгии исходный код этого Оригинал Bourne Shell Доступен и может быть скомпилирован для большинства дистрибутивов Unix и Linux.