2012-10-17 2 views
0

pexpect.run을 사용하여 명령을 실행하고 있습니다. 아래를 참조하십시오 :이 프로그램을 실행할 때pexpect.run이 긴 명령을 실행할 수 없습니다.

cmd = "grep -L killed /dir/dumps/*MAC-66.log" 
output = pexpect.run(cmd) 

output가 동일 :

grep: /dir/dumps/*MAC-66.log: No such file or directory 

하지만 내 껍질에서 같은 명령을 실행할 때, 그것은, 매번 작동합니다. 나는 문제가 보이지 않는다. 어떤 도움을 주셔서 감사합니다! pexpect.run에 명령을 약간의 방법으로 분할해야합니까?

답변

1

쉘이 glob을 해석 중이며, pexpect는 그렇지 않습니다. 당신이 중 하나를 사용 파이썬의 glob.glob() 기능은 글로브 직접 평가, 또는 예를 들어, 쉘을 통해 그것을 실행하려면 수 : 당신이 후있어 모든이 명령의 출력 인 경우,

cmd = "bash -c 'grep -L killed /dir/dumps/*MAC-66.log'" 

또한, 체크 아웃 마땅 subprocess 모듈.

+0

현재, 나는 단지 pexpect가 야생 문자를 처리하지 않는다는 것을 읽었다. – theAlse