Как создать новую переменную среды в Unix и использовать его в программе??????
Вы можете определить, какую оболочку вы используете, с помощью 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 и т. Д.но он должен работать в большинстве случаев.)
Зависит от оболочки. В bash
вы можете использовать:
export myvar=xyz
, который установит переменную и сделает ее доступной для других программ.
Если вы хотите установить его для одного вызова программы, вы можете использовать:
myvar=xyz ./myprog
Это установит его для процесса myprog
, но не после его выхода.