Как установить несколько переменных env для команды bash


110

Я должен установить переменные EC2_HOME и JAVA_HOME перед запуском команды (ec2-describe-region)

Как мне сделать это за один раз?

Ответы:


166

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

$ EC2_HOME=/path/to/dir JAVA_HOME=/other/path ec2-describe-regions

Кроме того, вы можете экспортировать их в среду, и в этом случае они будут установлены для всех будущих команд:

$ export EC2_HOME=/path/to/dir
$ export JAVA_HOME=/other/path
$ ec2-describe-regions

7
Обратите внимание, что, хотя это кажется необычным, вы также можете писать export EC2_HOME=/path JAVA_HOME=/path.
Уильям Перселл

4
Одноразовый вариант весьма полезен в скриптах. Просто примечание для тех, кому нужно выполнить команду от имени пользователя root или другого пользователя, переменные должны идти после sudo или пользователя. Напримерsudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
Nagev

Есть ли ограничение на количество переменных, которые вы можете указать через добавление?
Сэм Томас

Просто ограничение максимальной длины командной строки, которое в Linux довольно велико.
Крис Додд

2

Как и в другой системе * nix, вы можете добавить следующую функцию в свой .bashrc файл в вашем HOME каталоге.

function startec2(){
    EC2_HOME=/path/to/dir
    JAVA_HOME=/other/path 
    ec2-describe-regions
}

Теперь вы можете запустить свою программу с помощью следующей команды:

startec2

4
Насколько мне известно, это создает только переменные bash и работать не будет.
TNW
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.