有没有办法调用shell脚本并使用python脚本中定义的函数/变量?
脚本是 unix_shell.sh
#!/bin/bash
function foo
{
...
}
Run Code Online (Sandbox Code Playgroud)
是否可以从python调用这个函数foo?
解决方案:
对于 shell 局部变量(非导出),在 shell 中运行此命令,就在调用 python 脚本之前:
export $(set | tr '\n' ' ')
对于 shell 全局变量(从 shell 导出),在 python 中,您可以: import os print os.environ["VAR1"]
是的,与从另一个 bash 脚本中调用它的方式类似:
import subprocess
subprocess.check_output(['bash', '-c', 'source unix_shell.sh && foo'])
Run Code Online (Sandbox Code Playgroud)
不,那不可能。您可以执行shell 脚本,在命令行上传递参数,然后它可以打印出数据,您可以从 Python 中解析这些数据。
但这并不是真正调用该函数。这仍然是使用选项执行 bash 并在 stdio 上返回一个字符串。
这可能会做你想做的事。但这可能不是正确的方法。Bash 不能做很多 Python 不能做的事情。而是用 Python 实现该函数。
归档时间: |
|
查看次数: |
7432 次 |
最近记录: |