Cómo establecer múltiples variables env para un comando bash


109

Se supone que debo configurar las variables EC2_HOME y JAVA_HOME antes de ejecutar un comando (ec2-describe-Regions)

¿Cómo hago eso de una vez?

Respuestas:


165

Puede establecer vars una sola vez para un solo comando colocándolas en la línea de comando antes del comando:

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

Alternativamente, puede exportarlos en el entorno, en cuyo caso se establecerán para todos los comandos futuros:

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

7
Tenga en cuenta que, aunque parece poco común, también puede escribir export EC2_HOME=/path JAVA_HOME=/path.
William Pursell

4
La opción de una sola vez es bastante útil en los scripts. Solo una nota para cualquiera que necesite ejecutar el comando como root u otro usuario, las variables deben venir después de sudo o del usuario. Por ejemplosudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
Nagev

¿Existe un límite en la cantidad de variables que puede suministrar mediante la anteposición?
Sam Thomas

Solo el límite máximo de longitud de la línea de comandos, que es bastante grande en Linux.
Chris Dodd

2

Como otro sistema * nix, puede agregar la siguiente función en su archivo .bashrc en su directorio HOME.

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

Ahora, puede iniciar su programa con el siguiente comando:

startec2

4
Hasta donde yo sé, esto crea solo variables bash y no funcionará.
TNW
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.