我使用Python2.7.5,因为这个版本安装在我想运行脚本的机器上。
我在Tkinter中创建了一个简单的GUI,带有按钮和文本输入。现在,在一个输入中,我提供了ip或服务器主机名,下一步我读取输入字段的值并将其发送到linux终端,这里有一个问题。
从输入字段读取值(工作良好)
nazwa_ip = self.Input_IP_hostname.get("1.0", 'end-1c')其次是:
os.system('gnome-terminal --window-with-profile=MY_PROFILE -e "ssh -t user_name@nazwa_ip"')这就是问题所在,因为它不会将"nazwa_ip“更改为读值。科曼德派往终点站:
ssh -t user_name@nazwa_ip但我想发送:
ssh -t user_name@ip_adres_from_input_field有人能帮我解决这个问题吗?
发布于 2017-01-21 17:12:53
根据Python,建议将os.system替换为子流程模块。
status = os.system("mycmd" + " myarg")
# becomes
status = subprocess.call("mycmd" + " myarg", shell=True)发布于 2017-01-21 16:12:54
字符串格式将在这里工作:
os.system('gnome-terminal --window-with-profile=MY_PROFILE -e "ssh -t user_name@%s"' % nazwa_ip)发布于 2017-01-21 16:20:20
使用子流程方法可能会更好地做到这一点。
import subprocess
nazwa_ip = self.Input_IP_hostname.get("1.0", 'end-1c')
ssh_param = "ssh -t user_name@{}".format(nazwa_ip)
subprocess.call(['gnome-terminal', '--window-with-profile=MY_PROFILE', '-e', ssh_param])https://stackoverflow.com/questions/41781506
复制相似问题