Создание переменных среды для всех оболочек Unix - PullRequest
0 голосов
/ 13 марта 2012

Я пытаюсь добавить некоторые операторы экспорта в мой скрипт оболочки Unix, и до этого момента я только заставил его работать с оболочкой bash. Есть ли способ сделать так, чтобы приведенный ниже экспорт применялся во всех оболочках с помощью сценариев оболочки?

AXIS2_HOME = / дом / пользователь / axis2-1.6.0 экспорт AXIS2_HOME

1 Ответ

1 голос
/ 13 марта 2012

Что вы имеете в виду "все снаряды"?

  • Если вы имеете в виду разные оболочки, например, «могу ли я изменить среду оболочки моего родителя / сестры»?

Тогда нет, вы не можете.Экспорт var должен означать, что все ваши дети наследуют его.Вы можете каким-то образом подделать его, если ваш сценарий создаст временный файл, который вы каким-то образом заставите вызывающую программу выполнить, но он начинает становиться странным и наводит на мысль о проблеме в вашей архитектуре.

  • Если вы имеете в виду разные оболочки, как в sh / bash / csh / tcsh / zsh / ksh и т. Д.

Вы можете сделать что-то подобное во всех оболочках "sh", но для "csh" вынужно использовать setenv.

В зависимости от того, как далеко вы хотите зайти, вы можете написать что-то, чтобы хранить все ваши env.vars в отдельном файле (например, env.dat) и преобразовать его в синтаксис sh / csh, используя sed / awk / perl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...