从Python脚本获取当前的外壳类型



我的脚本设置了一定的环境,可供使物使用,因此,由于每个shell,bash(导出为set varrable)和tcsh(setenv),我需要获取正确的shell类型,从我们运行python的地方,我尝试使用$ shell varrrrrable,但它总是给我SH作为我的外壳。

是否有办法,我可以从Python脚本获得正确的外壳类型,或者它将始终输出" SH"作为$ Shell变量。

很抱歉将其从死里复活,但我自己做了。以下内容应为您提供当前外壳的路径:

from os import environ
print(environ['SHELL'])

您应该能够用所需的任何环境变量替换外壳。

对于用户从其登录外壳启动了不同类型的外壳,然后在该外壳中调用您的python脚本,您需要查看用于运行的可执行文件您脚本的父进程:

import os
os.path.realpath(f'/proc/{os.getppid()}/exe')

使用shellingham如下

import shellingham
try:
    shell = shellingham.detect_shell()
except shellingham.ShellDetectionFailure:
    shell = provide_default()

shell将带有两个参数的元组,您可以使用shell[0]

读取外壳名称

相关内容

  • 没有找到相关文章

最新更新