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.