2011-10-17 1 views
4

여기에 매우 구체적인 질문,하지만 나는 약간 더 일반적인 솔루션을 찾고 있어요 :쉘 스크립트 : 저주를 사용하는 호출 프로그램 등

내가 지원하기 위해 파이썬에서 쉘 스크립트를 쓰고 있어요 다양한 저장소의 git clone 수행 등 다양한 구성 작업. git clone으로 전화 할 때 터미널에 직접 git 디스플레이 출력을 제공하는 좋은 방법이 있습니까 (진행 막대 등)?

git의 동작이 진행 중임을 나타 내기 위해 터미널의 동일한 부분에 다시 쓰기를 포함하기 때문에 하위 프로세스의 stdout을 sys.stdout으로 파이핑해도 커트되지 않습니다. 그래서이 충분 정말 좋은되지 않습니다 : 내가 대답 "자식 - 파이썬을 사용하여"찾는 게 아니에요

import sys, subprocess 
process = subprocess.Popen("git clone --recursive https://github.com/my/repo.git", 
          shell=True, 
          stdout=sys.stdout, 
          stderr=subprocess.PIPE) 

- 오히려 내가에 적용 할 수있는 일반적인 방법을 찾고 있어요 이 설정 작업과 다른 설정 작업.

감사합니다.

답변

2

시도 :

wget 작동
import os 
os.system(mycommand) 

, 화면에 한 줄에 자신을 다시 쓰는 진행 바는 올바르게 방식으로 작동합니다. 나는 그것이 git 및 다른 사람을 위해 잘 작동 할 것이라는 점을 가정한다.