$ 고양이 test.pyPython과 Bash 명령 줄 env vars가 다르게 처리 되었습니까?
#!/usr/bin/env python
# coding=utf-8
import os
print (os.environ.get('test'))
$ 테스트 = 4 파이썬 test.py
4
$ 테스트 = 4; 파이썬 test.py
None
쉘에서 내가 파이썬과 다른 가지고 있지만 :
$ 테스트 = 4; 에코 $ 테스트
4
그러나 :
$ 테스트 = 2
$ 테스트 = 4 에코 $ 테스트
2
그래서 나는 파이썬과 bash는이 상황을 처리하는 방법에 대한 혼란 스러워요. 누군가 설명 할 수 있습니까?
마지막 사례는 어때요? – jiamo
@jiamo 내 편집을 확인하십시오 ... – heemayl
"에코 빌트인이 실행되기 전에 일어나는 일"을 이해할 수 있습니다. . 왜 python이 명령의 env에 var를 넘기는 것을 좋아하지 않습니다. 'sh -c'는 파이썬과 같은 새로운 쉘을 여는 것처럼 보입니다. 그래서 파싱 단계. 그것은 아가씨였습니다. – jiamo