2016-10-12 4 views
0

나는 자식과 함께 할려고 노력 중이다. 출력하는 경우에 문이 동일한 경우는 내가 검사와 노력했다명령이 완료되었는지 확인하는 방법은 무엇입니까?

git checkout master && git reset --hard && git fetch && git pull 

하지만 난 그게 좋은 생각 같아요 : 나는 그 명령이 제대로 된 경우 if 문 인수를 확인 할 수 있도록 얼마나 궁금합니다. 여기에 코드가 있습니다 :

#!/usr/bin/python3 
import os 
import subprocess 
import time 

while True: 

x = subprocess.getoutput("git checkout master && git reset --hard && git fetch && git pull") 

    if x is "Some text": 
    print('Some actions there') 

time.sleep(3600) 

그래서 나는 명령이 완료되었는지 확인하는 방법이 있는지 궁금합니다.

+0

그냥 exit 코드에 대해 읽으십시오. –

+1

대신 ['.getstatusoutput()'] (https://docs.python.org/3/library/subprocess.html#subprocess.getstatusoutput)을 사용하고 종료 코드가 0인지 확인하십시오. (즉, 성공). – user3030010

+0

x = subprocess.getstatusoutput ("git checkout master && git reset - hard && git pull") x [0]이 0 인 경우 : 인쇄 ('do some stuff') time.sleep (2) 이것이 맞습니까? – Chrzanek

답변

0

subprocess 모듈을 사용하고 각 명령을 Popen 또는 run과 같이 실행하십시오. 리턴 된 타입이 유용한 check_returncode() 메소드를 가지고 있기 때문에 나는 후자를 추천 할 것이다. 명령을 부품 목록으로 바꾸려면 shlex.split()을 사용하십시오.

import subprocess, shlex 
for (cmd in ("git checkout master", "git reset --hard", "git fetch", "git pull")): 
    subprocess.run(shlex.split(cmd)).check_returncode() 

면책 조항 :

은 기본적으로 당신이하고 싶은 무언가처럼이 테스트 임시을 작성하고되지 않았습니다. 그것은 단지 당신에게 거기에 도착하는 방법을 보여주게되어서, 당신을 위해 그것을 항상하지 않기로되어 있습니다.

관련 문제