如何在 Python/Bash 中打印默认终端的命令?

如何在 Python/Bash 中打印默认终端的命令?

我正在开发一个桌面应用程序,它使用终端弹出窗口向用户显示它正在执行哪些进程,例如 git 克隆、安装包等。问题是我和我的团队已经为所有用户安装和使用 Xterm大多数时候看起来不合适。我一直在尝试找到一种可靠的方法来简单地获取系统的默认终端模拟器并启动它。

有人告诉我运行os.system('basename "/"$(ps -f -p $(cat /proc/$(echo $$)/stat | cut -d \ -f 4) | tail -1 | sed \'s/^.* //\')')它将使用 bash 来检测终端。不幸的是,这似乎只读取执行命令的文件的名称。它python从 Python shell、test.py脚本和konsolekonsole 进行打印。我尝试在 bash 脚本中使用该命令并调用它,但它只打印了它所在的文件的名称。

我也被告知要使用,但无论如何os.system('echo $TERM')它都只会输出。xterm-256color

我尝试pstree -sA $$ | head -n1 | awk -F "---" '{ print $(NF-1) }'直接通过 Python 调用,并通过 Python 通过 bash 脚本调用,但仍然没有成功。只是出口python

有人有检查默认终端的解决方案吗?它必须能够在 Python 脚本中运行才能存储为变量。我只需要一个本机终端模拟器。

编辑:我正在使用 KDE 桌面环境运行 Arch Linux。它被设计为可以在任何桌面环境中运行。

相关内容