2014-11-12 3 views
0

함수 호출을 사용하여 custom_package.py 파이썬 스크립트에서 호출 된 셸 스크립트 abc.sh이 있습니다. abc.sh에서 값을 반환하고 Python으로 읽으 려합니다.파이썬 스크립트에서 호출 할 때 셸 스크립트에서 값을 반환합니다.

셸 스크립트에 대한 Python 호출은 다음과 같습니다.

subprocess.call(['abc.sh', user, password]) 

abc.sh "실행 중"또는 "실행 중이 지 않음". 파이썬 스크립트에서 "실행 중"또는 "실행 중"을 어떻게 캡처 할 수 있습니까? 다음과 같이 입력하십시오 :

ret_val = subprocess.call(['abc.sh', user, password]) 

시도했지만 작동하지 않습니다.

ret_val = subprocess.check_output(['abc.sh', user, password]) 
+0

check_output()을 실행할 때 "abc.sh"를 잘못 입력 했습니까? 그게 당신이 당신의 질문에 보여주는 것입니다. –

+0

@LukeYeager : 문제의 유형입니다. 문제가 있습니다. – tushR

+0

오류가 없으면 반환 값이 비어 있습니다. 터미널에서 쉘 스크립트를 실행하여 출력을 생성합니다. – tushR

답변

3

하위 프로세스의 출력을 캡처하려면 subprocess.check_output을 사용하십시오. 문자열 'not'이 반환 값에 없으면 출력은 단지 'running'입니다.

output = subprocess.check_output(['abc.sh', user, password]) 
print(output) 
running = 'not' not in output 
+0

이것은 효과가 있습니다. 감사. – tushR

+0

'not'가 무엇인지 확인하려면 어떻게해야합니까 .. 'i'가 무엇인지 확인하는 check_output의 출력은 무엇입니까? – tushR

+0

당신은 'not'가 subprocess.check_output ([ 'abc.sh', user, password])에 없는지 확인하고 boolean 출력을 variable running에 저장합니다. 그래서 'not'가 비교 대상이됩니다. – tushR

관련 문제