2017-01-27 13 views
0

Python変数をgnome-terminalコマンドオプションに渡すにはどうすればよいですか?私は特定のコマンドで複数のターミナルを開きたい。ここでpython変数をos.system(gnome-terminal)コマンドに渡す

は、私が何をしたいのコード(例)です:

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

しかし、シェルはコマンド「CMD」(bashの:CMD:コマンドが見つからない)を解釈しようとするため、それは働いていません

お願いします。

あなたは、文字列の中にあなたの変数を置き換えるための形式を使用することができ君たち

答えて

0

ありがとう:

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

私が修正行っている: 'os.system、ごので' (フォーマット(CMD) "gnome-terminalの-e 'のbash -c \' {} 'のexecのbash \'" を。)コマンドがエラーを返しました。何も起こりません。どうしてか分かりません。 – Paktros

-1

私はあなたが文字列「CMD」ではない変数cmd = "echo OK"を渡していると思います。これを試してみてください。

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

EDIT>

たぶんモジュール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

関連する問題