我有一个 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 中)不能胜任这样的任务。我有什么选择?