运行 linux 来自 python GUI tkinter 的终端命令

Run linux terminal commands from python GUI tkinter

我想 运行 linux 来自 tkinter 的终端命令。因此,无论 linux 命令是什么,我都会在 tkinter“Entry” 小部件中键入并按下按钮,使其成为终端中的 运行。

如果您看到代码:

from tkinter import *
import subprocess
root = Tk()
entry1 = Entry(root)
entry1.grid(row=0, column=0) 

def print_entry1():
   subprocess.run(entry1.get())
Button(root, text="entry1", command=print_entry1).grid(row=1, column=1)

root.mainloop()

您会发现它适用于“单字”命令,例如 pwd、whoami、ls。 但是,如果您在输入过程中添加 space 和一些标志/参数,则会出现错误...例如,它无法理解 ls -l 命令。 一旦在输入过程中引入 space 就会出现错误...

能否请您指教... 非常感谢。

你必须import shlex然后替换

subprocess.run(entry1.get())

subprocess.run(shlex.split(entry1.get()))

这会将用户输入的字符串转换为列表。