Python 调用 Shell 使用 subprocess 即可
(注意: 依照官方文档,使用 subprocess 替换 os.system, os.spawn*, os.popen*, popen2.*, commands.*)
但直接执行 .bashrc 里的命令并不成功,原因没有显示指出需要读取配置
bash 中的读取指令为:
1 | /bin/bash -i -c |
如下为正确处理方式:
例如 .bashrc 里有 alias saverm=rm -i
1 | import subprocess as sp |
简要说明一下,call 其实是封装了 Popen,是同步的(等待子进程完成),
可参考Vamei 的博客
注意:暴露 shell 是相当危险的,比如在 web 下暴露可能被执行 rm 指令
参考并特别感谢 stackoverflow 的解答