2017-01-27 78 views
0

如何將python變量傳遞到gnome-terminal命令選項?我想用特定的命令打開多個終端。將python變量傳遞到os.system(gnome-terminal)命令

這裏是我想要做的代碼(例如):

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

但它不工作,因爲shell試圖解釋命令「cmd」(慶典:CMD:命令未找到)

你能幫助我嗎?

謝謝你們

回答

0

你可以使用格式來取代你的變量到字符串:

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

我已經做了修改: '使用os.system( 「侏儒末端-e '的bash -c \'{} '; EXEC的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