我有一个 Python 程序,它需要执行一个不同的进程(我用subprocess.Popen它)。我需要这个执行来表现得好像用户在 shell 命令提示符下键入了以下内容:
$ source path/to/some_file
$ ./some_program
我希望我会使用shell=True某种形式的命令链接来首先运行source然后执行程序。但是,我面临以下问题:
启动我的 Python 程序的 shell 可以是bash, sh, tcsh(或者其他类型的csh)。我需要some_file根据正在运行的 shell 来寻找不同的来源。有没有办法确定这一点?无论是在 Python 中还是通过在里面运行一些东西Popen(..., shell=True),两者都可以。
我正在考虑编写某种“shell polyglot”来从不同的 shell 中获得不同的输出,但是我的 shell 技能(尤其是在 csh 中)不能胜任这样的任务。我有什么选择?