2011-07-28 8 views
0

SSH (묻지 않음)를 통해 subprocess을 사용하여 bash 쿼리를 수행하고 있습니다. 쿼리에 을 -exec 옵션과 함께 사용하는 것이 포함되지만 대상 호스트에서 실제로 수행하는 작업을 볼 때 원격 대상 호스트에서 {}이 제대로 확장되지 않습니다. 예를 들어파이썬 서브 프로세스를 통한 bash 쿼리, bash 변수는 확장되지 않음

: find/-name "hello.txt" -exec echo {} \;{}hello.txt을 읽어야하지만, 단지 단지 {}로 읽습니다.

그래서 내가 여기에서 무엇을 놓치고 있습니까?

미리 감사드립니다.

답변

4

코드를 게시하는 것이 도움이되지만 내 생각 엔 변수 확장에 필요한 하위 프로세스 인수에 shell=True을 포함시키지 않는 것이 좋습니다. 예 :

subprocess.Popen('find/-name "hello.txt" -exec echo {} \;', shell=True) 
+0

Yupp, 나는 알고있다 :-) 코드는 다른 기계에있다. 그러나'shell = False'를 사용하여 정확합니다. – Anders

관련 문제