Como definir várias variáveis ​​env para um comando bash


109

Devo definir as variáveis ​​EC2_HOME e JAVA_HOME antes de executar um comando (ec2-describe-regiões)

Como faço isso de uma vez?

Respostas:


165

Você pode definir vars uma vez para um único comando, colocando-os na linha de comando antes do comando:

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

Como alternativa, você pode exportá-los no ambiente e, nesse caso, eles serão definidos para todos os comandos futuros:

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

7
Observe que, embora pareça incomum, você também pode escrever export EC2_HOME=/path JAVA_HOME=/path.
William Pursell

4
A opção única é bastante útil em scripts. Apenas uma observação para quem precisa executar o comando como root ou outro usuário, as variáveis ​​devem vir depois de sudo ou do usuário. Por exemplosudo -u somebody CVSROOT=:ext:somebody@12.18.127.22:/usr/local/ncvs CVS_RSH=ssh cvs co my/dir/ancient-file.py
Nagev

Existe um limite para o número de variáveis ​​que você pode fornecer por meio de prefixação?
Sam Thomas

Apenas o limite máximo do comprimento da linha de comando, que é muito grande no Linux.
Chris Dodd

2

Como outro sistema * nix, você pode adicionar a função a seguir em seu arquivo .bashrc no diretório HOME.

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

Agora, você pode iniciar seu programa com o seguinte comando:

startec2

4
Pelo que eu sei, isso cria apenas variáveis ​​bash e não funcionará.
TNW
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.