我的脚本设置了一些环境变量,由Makefile使用,所以由于每个shell,bash(导出到set varriable)和tcsh(setenv),我需要获得正确的shell类型,从我们运行python的地方,我尝试使用$SHELL varriable,但它总是给我sh作为我的shell。有没有办法,我可以从Python脚本中获得正确的shell类型,或者它总是输出“SH”作为$SHELL变量。
e0bqpujr1#
很抱歉把这个从死里复活,但是我刚刚自己做了这个。下面应该会给予你到你当前shell的路径:
from os import environ print(environ['SHELL'])
您应该能够用您正在寻找的任何环境变量替换shell。
klr1opcd2#
如果用户启动了与其登录shell不同类型的shell,然后在该shell中调用Python脚本,则需要查看用于运行脚本父进程的可执行文件:
import os os.path.realpath(f'/proc/{os.getppid()}/exe')
2条答案
按热度按时间e0bqpujr1#
很抱歉把这个从死里复活,但是我刚刚自己做了这个。下面应该会给予你到你当前shell的路径:
您应该能够用您正在寻找的任何环境变量替换shell。
klr1opcd2#
如果用户启动了与其登录shell不同类型的shell,然后在该shell中调用Python脚本,则需要查看用于运行脚本父进程的可执行文件: