인라인 변수 정의는 작동하지만 이전 줄은 aws 명령에 대해 작동하지 않는 이유는 무엇입니까? [복사]

인라인 변수 정의는 작동하지만 이전 줄은 aws 명령에 대해 작동하지 않는 이유는 무엇입니까? [복사]

이 명령을 실행할 때:

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

에이전트는 명령줄 도구를 통해 얻습니다 aws.

하지만 - 내가 할 때:

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

aws명령은 프록시를 얻지 않습니다.

나에게는 유닉스 관점에서 볼 때 그것들은 동일합니다. 이것은 Python이 환경 변수를 읽는 방식과 관련이 있습니까?

내 질문은 다음과 같습니다인라인 변수 정의는 작동하지만 이전 줄은 aws 명령에 대해 작동하지 않는 이유는 무엇입니까?

답변1

Unix 관점에서(또는 쉘의 관점에서) 이들은 동일하지 않습니다.

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

https_proxy명령에 대한 변수를 명시적으로 정의하십시오 aws. 쉘은 이를 aws프로세스 환경에 복사하고 aws살펴봅니다.

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

변수는 쉘 환경에 정의되어 있지만 변수를 내보내지 않기 때문에 쉘은 변수를 aws프로세스 환경에 복사하지 않습니다.

aws( 의 관점 에서) 동등한 것은 실제로

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

바라보다Bash 구문은 무엇입니까: someVariable=someValue 명령자세한 내용(및 문서 링크)을 알아보세요.

관련 정보