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?

SamLosAngeles
fuente

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
Chris Dodd
fuente
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:[email protected]:/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
gzh
fuente
4
Hasta donde yo sé, esto crea solo variables bash y no funcionará.
TNW