2016-10-07 2 views
0

다른 인수를 사용하여 쉘 스크립트 generateLicense.sh을 실행하고 싶습니다. 나는 그런 식으로 작업을 수행합니다subprocess.check_output 명령을 올바르게 사용하는 방법

License = subprocess.check_output(['./generateLicense.sh -firstargument 1 -secondargument 2 -thirdargument 3']) 

쉘 스크립트는 쉘 스크립트를 시작하는 파일과 같은 폴더에 있지만 난 항상이 오류를 얻을 : check_output 당신이하려고하는 방법을 사용

OSError: [Errno 2] No such file or directory 

답변

0

을 to, 각 명령은 지나가는 목록의 항목이어야합니다. 그럼, 당신이해야 할 것은입니다 : 여기

License = subprocess.check_output(['./generateLicense.sh', '-firstargument', '1', '-secondargument', '2', '-thirdargument', '3']) 

당신이 check_output에 전달되는 목록에서 하나의 문자열로 다중 인수 명령을 통과 할 때 무슨 일이 일어나고 있는지 보여주기 위해 다른 명령을 사용하여 문제의 복제입니다 :

>>> import subprocess 
>>> subprocess.check_output(["ls -a"]) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 566, in check_output 
    process = Popen(stdout=PIPE, *popenargs, **kwargs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 

당신이 실제로 더 일관성있는 뭔가 얻을 것이다 파이썬 3에서 이렇게 :

FileNotFoundError: [Errno 2] No such file or directory: 'ls -a' 
+0

라이센스 = subprocess.check_output를 ([ './ generateLicense.sh', '-firstargument', '1' , '-secondargument', '2', '-thirdargument', '3'])는 여전히 같은 오류를 발생시킵니다. – Layroni

관련 문제