2017-01-27 4 views
0

어떻게 파이썬 변수를 gnome-terminal 명령 옵션에 전달할 수 있습니까? 특정 명령으로 여러 터미널을 열고 싶습니다. 여기 python 변수를 os.system (gnome-terminal) 명령으로 전달

는 내가하고 싶은 일의 코드 (예를 들어)입니다 :

cmd = "echo OK" 
os.system("gnome-terminal -e 'bash -c \"'cmd' ; exec bash\"'") 

을하지만, 쉘 명령 "cmd"를 해석하려고하기 때문에 제대로 동작하지 않습니다 (bash는 : 명령 : 명령을 찾을 수 없음)

제발 도와 주실 수 있습니까?

당신은 문자열로 변수를 대체하는 형식을 사용할 수 너희들

답변

0

감사합니다

cmd = "echo OK" 
os.system("gnome-terminal -e 'bash -c \"'{}' ; exec bash\"'".format(cmd)) 
+0

나는 수정했을 : 'os.system을을 ("그놈 터미널 -e '의 bash -c \'{} ', bash는 \ 간부'"형식 (cmd를).)' 당신을 때문에 명령이 오류를 반환했습니다. 아무 반응이 없습니다. 나는 이유를 모른다. – Paktros

-1

난 당신이 문자열 "cmd를"가 아닌 변수 cmd = "echo OK"를 전달하는 것 같아요. 이것을 시험해보십시오.

cmd = "echo OK" 
os.system("gnome-terminal -e 'bash -c " + cmd + " ; exec bash'") 

편집은 아마 모듈 subprocess는 당신을 도울 수

>. 이 스 니펫을 시도해보십시오.

import subprocess  
cmd_line = "echo Hello!" 
p = subprocess.Popen(cmd_line, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
out = p.communicate()[0] 
print out 
+0

불행히도 아무 일도 일어나지 않습니다 ... – Paktros

+0

이것은 작동하지만 정확히 내가 기대하는 것은 아닙니다. 사실, 새로운 터미널이있는 다중 창이 필요합니다. – Paktros