【问题标题】:open terminal run command python打开终端运行命令python
【发布时间】:2021-08-02 22:15:30
【问题描述】:

我正在尝试打开一个终端并在其中运行一个命令。我正在使用

os.system("gnome-terminal -e 'bash -c \"exec bash; MY_COMMAND; exec bash\" '")

这会打开一个新终端,但该命令并未执行。

【问题讨论】:

  • 你为什么用exec bash包围你的命令?
  • 您需要在终端中运行它吗?子进程 python 模块呢?
  • @zondo 在执行后保持终端打开
  • @RaydelMiranda 它需要在终端中运行
  • 嗯,你不需要事先。我要做的是:MY_COMMAND; echo Hit ^C to close this terminal; while true; do sleep 2; done

标签: python


【解决方案1】:

exec 命令将当前正在运行的进程替换为一个新进程,因此,如果您在要运行的命令列表中有一个 exec,则只要运行 exec,就不会运行其他任何进程。所以你用bash 替换'bash -c \"exec bash; MY_COMMAND; exec bash\" ',然后exec bash 运行后什么都没有。试试这个:

os.system("gnome-terminal -e 'bash -c \"MY_COMMAND\" '")

或者如果您需要终端保持打开状态,请尝试以下操作:

os.system("gnome-terminal -e 'bash -c \"MY_COMMAND; sleep 1000000\" '")

如果您希望终端保持打开状态并处于 bash shell 中,请尝试以下操作:

os.system("gnome-terminal -e 'bash -c \"MY_COMMAND; bash\" '")

【讨论】:

  • 你能告诉我如何每次打开一个标签并运行“MY_COMMAND”而不是新终端吗?
【解决方案2】:

我们开始...

command="python3 --version"
os.system("gnome-terminal -e 'bash -c \""+command+";bash\"'")

应该可以的...

Output:Python 3.6.4

然后输出进入一个新的终端......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2016-02-14
    • 2021-12-09
    相关资源
    最近更新 更多