2013-08-28 2 views
-1

os.system 명령을 사용하여 셸 스크립트를 호출하는 python 스크립트를 작성했습니다. 셸 스크립트에 인수를 전달하는 방법을 이해하는 데 도움이 필요합니까? 아래는 내가 시도하고있는 것이지만, 효과가 없을 것입니다.os.system 명령을 사용하여 쉘 스크립트를 호출 할 때

os.system('./script.sh arg1 arg2 arg3') 

셸 스크립트 호출에 subprocess을 사용하고 싶지 않습니다. 어떤 도움을 주셔서 감사합니다.

+2

은 왜 서브 프로세스 모듈을 사용하지 않으려는 HTH? – squiguy

+0

둘째, 서브 프로세스를 사용하지 않는 이유는 무엇입니까? – cforbish

+0

또한 작동하지 않는다고 말할 때 작동하지 않는다는 것을 어떻게 알 수 있습니까? 오류 메시지가 있습니까? – SethMMorton

답변

0

os.system (...) 앞에 다음 행을 삽입하면 문제가 발생할 가능성이 높습니다.

print './script.sh arg1 arg2 arg3'

일의이 유형을 개발할 때, 그것은 일반적으로 당신이 실제로 그것을 시도하기 전에 명령이 정말 당신이 기대되어 있는지 확인하는 데 유용합니다.

예 : 당신이 만족하는 경우

def Cmd(): 
    return "something" 

print Cmd() 

에서, print Cmd() 줄을 주석 및 os.system (Cmd()) 또는 서브 프로세스 버전을 사용하십시오.

0

스크립트를 놓으면 args가 문자열로됩니다 (아래 예 참조).

#!/usr/bin/env python 

import os 

arg3 = 'arg3' 
cmd = '/bin/echo arg1 arg2 %s' % arg3 

print 'running "%s"' % cmd 

os.system(cmd)