Как создать новую переменную среды в UNIX ....? - PullRequest
8 голосов
/ 14 июня 2010

Как создать новую переменную окружения в unix и использовать ее в программе ??????

Ответы [ 3 ]

12 голосов
/ 14 июня 2010

Вы можете сказать, какую оболочку вы используете ps -o comm= -p $$ - я думаю, это более или менее универсально.Итак, в bash и некоторых подобных оболочках ...

Если вы хотите создать переменную для одного конкретного прогона, вы можете сделать

MYVAR=value the_command_that_needs_myvar

Если вы хотите создать ее для всегоСеанс оболочки (т.е. пока вы не выйдете из системы):

export MYVAR=value

... и затем вы можете выполнить:

the_command_that_needs_myvar

... столько раз, сколько вам нужно во время этого сеансаи он все равно будет видеть MYVAR как имеющее значение value.

Если вы хотите, чтобы он был установлен для вас, для всех ваших сеансов входа в систему, введите его в ~/.profile.

Обратите внимание, что файлы инициализации bash могут быть одним большим WTF.В зависимости от того, запущен ли он в интерактивном режиме, по сети, локально, И в зависимости от того, вызывается ли он как sh или bash, он выборочно считывает некоторую комбинацию ~/.bashrc, ~/.profile и ~/.bash_profile.Подробнее читайте в разделе ФАЙЛЫ справочной страницы bash.

Если вы хотите, чтобы он был установлен для каждого пользователя, при каждом входе в систему, поместите его в файл /etc/profile (хотя есть и /etc/environment, я не уверен, насколько широко это используется.).

Проверьте вопрос «Как установить переменную окружения для всех в моей системе linux?» для получения более подробной информациитоже.

(Осторожно, некоторые из этих советов будут различаться в зависимости от того, используете ли вы или другие пользователи bash, dash, csh, ksh и т. д., но они должны работать в большинстве случаев использования.)

6 голосов
/ 14 июня 2010

Зависит от оболочки. В bash вы можете использовать:

export myvar=xyz

, которая установит переменную и сделает ее доступной для других программ.

Если вы хотите установить его для одного вызова программы, вы можете использовать:

myvar=xyz ./myprog

Он будет установлен для процесса myprog, но не после его выхода.

1 голос
/ 14 июня 2010

См. Функции setenv (3) и getenv (3).

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