从python脚本获取当前shell类型

xwmevbvl  于 2023-01-13  发布在  Shell
关注(0)|答案(2)|浏览(164)

我的脚本设置了一些环境变量,由Makefile使用,所以由于每个shell,bash(导出到set varriable)和tcsh(setenv),我需要获得正确的shell类型,从我们运行python的地方,我尝试使用$SHELL varriable,但它总是给我sh作为我的shell。
有没有办法,我可以从Python脚本中获得正确的shell类型,或者它总是输出“SH”作为$SHELL变量。

e0bqpujr

e0bqpujr1#

很抱歉把这个从死里复活,但是我刚刚自己做了这个。下面应该会给予你到你当前shell的路径:

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

您应该能够用您正在寻找的任何环境变量替换shell。

klr1opcd

klr1opcd2#

如果用户启动了与其登录shell不同类型的shell,然后在该shell中调用Python脚本,则需要查看用于运行脚本父进程的可执行文件:

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

相关问题