如何使用python子进程模块执行.profile中定义的bash函数?

时间:2014-09-17 21:22:33

标签: python bash subprocess

我试图通过python程序调用我在.profile中定义的bash函数。对于上下文,我的函数调用chef的刀命令:

  function knife-LHR() {
    knife $@ -c ~/.chef-LHR/knife.rb
  }

如果您想知道我为什么不将函数的逻辑合并到我的python程序中,那是因为我的用户在他们的bash配置文件中定义了这个函数,我的意图是支持他们的使用(在这种情况下)刀具命令。

如何使用python子进程完成此操作?

1 个答案:

答案 0 :(得分:5)

我认为最好的方法是启动一个bash进程并让它调用命令:

import subprocess
subprocess.call(['bash', '-c', '. ~/.profile && knife-LHR'])