2016-07-03 2 views
0
subprocess.call(["echo",instance.Username]) # => works . 


subprocess.call(["username=",instance.Username]) # => error 
subprocess.Call(["username","=",instance.Username]) # => error 

subprocess.call(["username=",instance.Username],shell=True) 
# => no Error but when i do echo $username there is nothing inside.. 

당신이 날 도움이 될 그런 파일이나 디렉토리가, 난 그냥 bash는 변수에 instance.Username의 값을 넣을 없습니다.장고 1.9 : bash는 스크립트에 파이썬 스크립트의 변수를 전달 - OSError가 : [errno를 2]

감사합니다.

+1

자세한 내용을 입력해야합니다. 정확히 "bash 변수"로 무엇을 할 예정입니까? –

+0

또 다른 bash 스크립트를 실행하는 데 필요할 것입니다 .. 잠시만 기다려주십시오. 터미널에 표시 할 수있는 bash 변수에 instance.Username 값을 넣으려고합니다. –

답변

2

당신과 같이 subprocess.call()에 환경 변수로 전달하는 것이 좋습니다 :

env = { 
    'username': instance.Username, 
} 

subprocess.call(['./your_script.sh'], env=env) 

이것은 당신의 bash는 스크립트에 사용할 수있는 환경 변수 $username를 만들 것입니다.

bash 명령을 목록에 넣고 ./과 함께 스크립트를 실행하고 정확한 셰 배너 (내가 작성하는 동안 잊어 버린 모든 것)로 스크립트를 시작하십시오.

+0

나는 이것을 시도했습니다 : env = { ' username ': instance.Username, } subprocess.call (['echo '], env = env) 아무 것도 반환하지 않습니다. –

+0

물론 아무것도 반환하지 않습니다. 이를 위해서는'subprocess.check_output'이 필요합니다. –

+0

죄송합니다, 나는 subprocess.call ([ 'echo'], env = env) 할 때 빈 줄을 제공한다고 말하고 싶었습니다 !! –

관련 문제