【问题标题】:How do I use `python -i 'script.py'` without closing terminal window after quitting interpreter?退出解释器后如何在不关闭终端窗口的情况下使用`python -i \'script.py\'`?
【发布时间】:2022-10-17 15:00:38
【问题描述】:

在 Linux 上以交互模式退出脚本后,如何在不关闭终端窗口的情况下使用 python -i 'script.py'

当我刚刚退出解释器环境时,我想在不关闭终端窗口的情况下返回终端 bash 环境。

我在 exec= session 的 .desktop 文件中使用以下命令通过图标或快捷方式启动 python 脚本。

gnome-terminal --full-screen -- python3 -i "path/to/script.py"

【问题讨论】:

  • Python 不会退出交互式解释器,除非您的脚本调用内置的 exit()sys.exit(),它可能不应该这样做。
  • 是的你是对的!事实上,我要问的是一个不同的问题,当我退出解释器环境时,我想在不关闭窗口的情况下返回终端 bash 环境。对不起我的英语,这里没有母语人士。
  • 如果您从交互式 shell 启动 Python 进程,python 应该没有其他方法,除了调用关闭父 shell 会话。请提供如何启动终端会话和 python 脚本的详细步骤。
  • 对不起,我没有提到一个重要的细节,因为下面的命令,gnome-terminal --full-screen -- python3 -i "path/to/script.py", 位于 exec= session 中的 .desktop 文件中,通过图标或快捷方式启动 python 脚本。

标签: python linux


【解决方案1】:

根据您的评论,您启动 gnome-terminal 以 python 作为主要进程。默认情况下,gnome-terminal 会自行关闭,如果 shell 进程(在您的情况下为 python)退出。你有两个选择。

修改gnome-terminal的行为

gnome-terminal 的设置中导航到您使用的配置文件(左侧边栏),然后导航到第 4 个选项卡(命名为命令)。在底部下拉菜单中(命名为命令退出时) 您可以将 gnome-terminal 设置为在命令退出时继续运行。

但是,这很可能不是您想要的,因为您将留下一个无法使用的终端窗口没有运行的外壳.

将命令包装在 shell 进程中

如果你想在 python 退出后有一个交互式的 shell,你需要首先启动一个。为了让它回退到一个 shell,你可以告诉它在 python 退出后再次执行 shell:

gnome-terminal --full-screen -- /bin/bash -c "python3 -i path/to/script.py; bash"

另见:How to invoke bash, run commands inside the new shell, and then give control back to user?

【讨论】:

  • 非常感谢,现在它可以按预期工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
相关资源
最近更新 更多