【发布时间】:2018-12-10 05:31:13
【问题描述】:
假设我有一个 bash 函数,我将它输入到 shell 中。
# cat sample.sh
function func()
{
echo "Custom env : $CUSTOM_ENV"
}
现在我在 bash shell 中获取这个脚本:
#source sample.sh
然后我定义:
export CUSTOM_ENV="abc"
然后从 bash shell 调用 func(),它显示:
#func
Custom env : abc
现在,如果我从同一个 shell 调用 python 脚本, 我想从 python 脚本调用函数 func() 。无论如何要做到这一点?
我尝试了什么:
- 试过 os.system('func') - 不起作用
- 试过 subprocess.check_output('func', shell=True, env=os.environ.copy()) - 不起作用
有什么指导吗?
【问题讨论】:
-
要么在 Python 中重新编码(即使用字符串表示并调用它),要么调用
bash sample.sh。 -
调用 bash sample.sh 似乎不起作用。试过了:)
-
另见stackoverflow.com/a/49209211/874188(可能重复,但细节不同)。
标签: python bash shell subprocess