Я понял - вероятно, на Usenet в середине 1990-х (!) - что конструкция
export var=value
является Bashism, и что переносимое выражение
var=value
export var
Я защищал это годами, но недавно кто-то бросил мне вызов, и я действительно не могу найти никаких документов, подтверждающих то, что раньше было моим твердым убеждением.
"export: command not found"
Похоже, поиск в Google не приводит ни к каким случаям, когда кто-то действительно имел эту проблему, поэтому, даже если она подлинная, я думаю, что это не очень распространено.
(Удары , которые я получаю , кажется, новички , которые копировать / вставить знаки препинания, и в конечном итоге с 'export: command not found
или несколько таких, или пытаются использовать export
с sudo
, и новичком csh
. Пользователей пытаются использовать синтаксис Bourne оболочки)
Я, конечно, могу сказать, что он работает на OS X и на разных дистрибутивах Linux, включая те, где sh
есть dash
.
sh$ export var=value
sh$ echo "$var"
value
sh$ sh -c 'echo "$var"' # see that it really is exported
value
Можно ли сказать, что в современном мире export var=value
безопасно использовать?
Я хотел бы понять, каковы последствия. Если он не портативен для v7 "Bourne classic", это вряд ли что-то большее, чем мелочи. Если существуют производственные системы, в которых оболочка действительно не справляется с этим синтаксисом, это было бы полезно знать.
busybox
своей собственной минимальной оболочки? (Я не в состоянии попробовать ни того, ни другого прямо сейчас.)