2010-06-14 4 views

ответ

6

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

export myvar=xyz 

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

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

myvar=xyz ./myprog 

Это будет иметь это набор для myprog процесса, но не после того, как он выходит.

1

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

12

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

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

MYVAR=value the_command_that_needs_myvar 

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

export MYVAR=value 

... а затем вы можете запустить:

the_command_that_needs_myvar 

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

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

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

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

За дополнительной информацией обращайтесь к нам "How to set environment variable for everyone under my linux system?".

(Осторожно, некоторые из этих советов будут варьироваться в зависимости от того, если вы или других пользователей, используете Баш, тир, CSH, Ksh и т.д ... но он должен работать в большинстве случаев.)

+0

Действительно, сортировка, следует ли использовать/etc/environment,/etc/profile, ~/.profile, ~/.kshrc, ~/.cshrc, ~/.bash_profile, ~/.bash_login, ~/.bashrc и все другие возможности _not_ для слабонервных :-) – paxdiablo

+0

Это заставляет меня думать о [Руководстве UN Hater's Handbook] (http://www.art.net/~hopkins/Don/unix-haters/handbook.html) - конечно оставленный WTFery из плохих старых дней. Я добавил немного о личных конфигурационных файлах 'bash'. – detly

Смежные вопросы