如何将字符串以及其他变量传递到gnome终端中

问题描述 投票:0回答:1

我正在尝试创建一个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 bash discord gnome-terminal
1个回答
0
投票

我不太确定这是您想要的与否。您可以使用python格式字符串函数。

for bot in paths:
   print("gnome-terminal -- bash -c 'echo Starting up {}; python '{}'; exec bash'".format(bot[0], bot[1]))
© www.soinside.com 2019 - 2024. All rights reserved.