Por que uma definição de variável embutida funciona, mas uma linha anterior não serve para um comando aws? [duplicado]

1

Quando eu executo este comando:

https_proxy=http://myproxy.com/ aws [aws-param]

o proxy é selecionado pela ferramenta de linha de comando aws .

No entanto - quando faço isso:

https_proxy=http://myproxy.com/ 
aws [aws-param]

o comando aws não atende o proxy.

Para mim, eles são os mesmos do ponto de vista unix. Isso é algo sobre a maneira como o python lê as variáveis de ambiente?

Minha pergunta é: Por que uma definição de variável inline funciona, mas uma linha anterior não funciona para um comando aws?

    
por hawkeye 22.03.2017 / 09:36

1 resposta

3

Eles não são os mesmos do ponto de vista do Unix (ou melhor, do ponto de vista do shell).

https_proxy=http://myproxy.com/ aws [aws-param]

define explicitamente a variável https_proxy para o comando aws ; o shell copia para o ambiente do processo aws e aws o vê.

https_proxy=http://myproxy.com/ 
aws [aws-param]

define a variável no ambiente do shell, mas como ela não é exportada, o shell não copia para o ambiente do processo aws .

O equivalente (do ponto de vista de aws ) é, na verdade,

https_proxy=http://myproxy.com/ 
export https_proxy
aws [aws-param]

Consulte O que é essa sintaxe de Bash: someVariable = someValue command para obter mais detalhes (e links para a documentação) .

    
por 22.03.2017 / 09:41