Come impostare più variabili env per un comando bash


109

Dovrei impostare le variabili EC2_HOME e JAVA_HOME prima di eseguire un comando (ec2-Descrivere-Regioni)

Come posso farlo in una volta sola?

Risposte:


165

Puoi impostare le variabili una volta per un singolo comando inserendole nella riga di comando prima del comando:

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

In alternativa, puoi esportarli nell'ambiente, nel qual caso verranno impostati per tutti i comandi futuri:

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

7
Nota che, sebbene sembri raro, puoi anche scrivere export EC2_HOME=/path JAVA_HOME=/path.
William Pursell

4
L'opzione una tantum è abbastanza utile negli script. Solo una nota per chiunque abbia bisogno di eseguire il comando come root o un altro utente, le variabili dovrebbero venire dopo sudo o l'utente. Ad esempiosudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
Nagev

Esiste un limite al numero di variabili che è possibile fornire anteponendo?
Sam Thomas,

Solo il limite massimo di lunghezza della riga di comando, che è abbastanza grande su Linux.
Chris Dodd,

2

Come altri sistemi * nix, puoi aggiungere la funzione come segue nel tuo file .bashrc nella tua directory HOME.

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

Ora puoi avviare il tuo programma con il seguente comando:

startec2

4
Per quanto ne so, questo crea solo variabili bash e non funzionerà.
TNW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.