如何将字符串以及其他变量传递到 gnome 终端
How to pass a string, as well as other variables, into a gnome-terminal
我正在尝试创建一个 Python 文件,该文件将为 4 个不同的 Discord 机器人启动 Python 脚本。我正在努力弄清楚如何将变量传递给 gnome 终端。
例如:
paths = [
[
"Bot 1 Name",
"Bot 1 Path/Bot1.py"
],
[
"Bot 2 Name",
"Bot 2 Path/Bot2.py"
]
]
for bot in paths:
os.system(f"""gnome-terminal -- bash -c 'echo Starting up {bot[0]}; python "{bot[1]}"; exec bash'""")
但是,这不起作用,因为每个机器人的路径都需要用某种形式的引号括起来,否则终端不会将其视为一个参数。
我已经尝试了一堆不同的引号排列方式,以及其他一些方法,但是 none 强制终端意识到 {bot[1]}
的值需要用引号括起来。
理想情况下,终端应接收如下命令:
gnome-terminal -- bash -c "echo Starting up Bot 1; python '~/Bot1.py'; exec bash"
或者功能相同的类似东西。
有什么建议吗?
我不太确定这是不是你想要的。您可以使用 python 格式化字符串函数。
for bot in paths:
os.system("gnome-terminal -- bash -c \"echo Starting up {}; python '{}'; exec bash\"".format(bot[0], bot[1]))
通过与打印功能一起使用,您将获得与您提到的相同的输出。
for bot in paths:
print("gnome-terminal -- bash -c \"echo Starting up {}; python '{}'; exec bash\"".format(bot[0], bot[1]))
gnome-terminal -- bash -c "echo Starting up Bot 1 Name; python 'Bot 1
Path/Bot1.py'; exec bash"
gnome-terminal -- bash -c "echo Starting up Bot 2 Name; python 'Bot 2
Path/Bot2.py'; exec bash"
我正在尝试创建一个 Python 文件,该文件将为 4 个不同的 Discord 机器人启动 Python 脚本。我正在努力弄清楚如何将变量传递给 gnome 终端。
例如:
paths = [
[
"Bot 1 Name",
"Bot 1 Path/Bot1.py"
],
[
"Bot 2 Name",
"Bot 2 Path/Bot2.py"
]
]
for bot in paths:
os.system(f"""gnome-terminal -- bash -c 'echo Starting up {bot[0]}; python "{bot[1]}"; exec bash'""")
但是,这不起作用,因为每个机器人的路径都需要用某种形式的引号括起来,否则终端不会将其视为一个参数。
我已经尝试了一堆不同的引号排列方式,以及其他一些方法,但是 none 强制终端意识到 {bot[1]}
的值需要用引号括起来。
理想情况下,终端应接收如下命令:
gnome-terminal -- bash -c "echo Starting up Bot 1; python '~/Bot1.py'; exec bash"
或者功能相同的类似东西。
有什么建议吗?
我不太确定这是不是你想要的。您可以使用 python 格式化字符串函数。
for bot in paths:
os.system("gnome-terminal -- bash -c \"echo Starting up {}; python '{}'; exec bash\"".format(bot[0], bot[1]))
通过与打印功能一起使用,您将获得与您提到的相同的输出。
for bot in paths:
print("gnome-terminal -- bash -c \"echo Starting up {}; python '{}'; exec bash\"".format(bot[0], bot[1]))
gnome-terminal -- bash -c "echo Starting up Bot 1 Name; python 'Bot 1 Path/Bot1.py'; exec bash"
gnome-terminal -- bash -c "echo Starting up Bot 2 Name; python 'Bot 2 Path/Bot2.py'; exec bash"