我正在尝试创建一个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'""")
但是,由于每个机器人的路径都需要用某种形式的引号引起来,因此此方法不起作用,否则终端不会将其视为一个参数。我已经尝试了多种不同的引号排列方式以及其他一些方法,但是没有一种方法可以使终端意识到{bot[1]}
的值需要用引号引起来。
理想情况下,终端应收到如下命令:gnome-terminal -- bash -c "echo Starting up Bot 1; python '~/Bot1.py'; exec bash"
或功能相似的东西。
有什么建议吗?
我不太确定这是您想要的与否。您可以使用python格式字符串函数。
for bot in paths:
print("gnome-terminal -- bash -c 'echo Starting up {}; python '{}'; exec bash'".format(bot[0], bot[1]))