Comment définir plusieurs variables d'environnement pour une commande bash


109

Je suis censé définir les variables EC2_HOME et JAVA_HOME avant d'exécuter une commande (ec2-describe-regions)

Comment faire cela en une seule fois?

Réponses:


165

Vous pouvez définir des variables uniques pour une seule commande en les plaçant sur la ligne de commande avant la commande:

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

Vous pouvez également les exporter dans l'environnement, auquel cas ils seront définis pour toutes les commandes futures:

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

7
Notez que, bien que cela semble rare, vous pouvez également écrire export EC2_HOME=/path JAVA_HOME=/path.
William Pursell

4
L'option unique est très utile dans les scripts. Juste une note pour tous ceux qui ont besoin d'exécuter la commande en tant que root ou un autre utilisateur, les variables doivent venir après sudo ou l'utilisateur. Par exemplesudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
Nagev

Y a-t-il une limite au nombre de variables que vous pouvez fournir via le préfixe?
Sam Thomas

Juste la limite de longueur maximale de la ligne de commande, qui est assez grande sous Linux.
Chris Dodd

2

Comme tout autre système * nix, vous pouvez ajouter la fonction suivante dans votre fichier .bashrc sous votre répertoire HOME.

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

Maintenant, vous pouvez démarrer votre programme par la commande suivante:

startec2

4
Autant que je sache, cela ne crée que des variables bash et ne fonctionnera pas.
TNW
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.