Python -- 使用指定的 shells 执行 shell 命令

Python -- execution shell commands using a designated shells

所以我知道 python 可以使用 subprocess.call()

执行 shell 命令

但我通常使用 tcsh,并且我有一个 .tcshrc,它加载了很多环境变量以使我的 shell 舒适。

如何让我的 subprocess.call() 意识到——在 tcsh 中执行我的命令,加载我的 .tcshrc 文件?

像这样显式调用 tcsh 来执行相应的 cmd(将 env 替换为您特定的 cmd arg 列表:

~/> cat tst.py
#!/usr/bin/python -u
import subprocess
subprocess.call(['/usr/bin/tcsh', '-c', 'env'])
~/> ./tst.py | grep ^DISPLAY
DISPLAY=:0
~/>