Python 从子进程bash脚本获取输出
我有一个bash脚本,其中有这样一个函数Python 从子进程bash脚本获取输出,python,python-3.x,bash,Python,Python 3.x,Bash,我有一个bash脚本,其中有这样一个函数 configure() { echo $1 echo $2 return 0 } 我从我的python文件中直接调用这个函数 subprocess.Popen( ['bash', ' -c', '. test.sh; configure 1 2']) 现在,我想从这个函数中获取返回值,如果出现错误,我也要捕获返回值。您根本没有将configure 1 2传递给脚本。您正在将该字符串传递给bash,但没
configure()
{
echo $1
echo $2
return 0
}
我从我的python文件中直接调用这个函数
subprocess.Popen(
['bash', ' -c', '. test.sh; configure 1 2'])
现在,我想从这个函数中获取返回值,如果出现错误,我也要捕获返回值。您根本没有将
configure 1 2
传递给脚本。您正在将该字符串传递给bash,但没有告诉bash将其传递给脚本。请将其与['bash','-c','.test.sh;configure 1 2']
进行比较,这两个命令都需要在-c
之后立即包含在参数中,才能被视为bash应该运行的脚本的一部分。之后的下一个参数是$0
,之后的参数是$1
,等等——但是您告诉bash运行的脚本完全忽略了$0
,$1
,等等。您应该先弄清楚如何运行bash脚本以获得所需的输出,然后才让Python参与进来带引号的“$1”;请参阅。如果要调用bash-c
,最好将整个字符串传递给subprocess.Popen()
,然后使用shell=True
选项。