我编写了一个 Python 模块,其中包含返回数组的函数。我希望能够访问从 python 模块返回的字符串数组,并在 bash 脚本中迭代,因此我可以迭代数组元素。
例如:
Python 模块 (mymod)
def foo():
return ('String', 'Tuple', 'From', 'Python' )
def foo1(numargs):
return [x for x in range(numargs)]
bash 脚本
foo_array = .... # obtain array from mymod.foo()
for i in "${foo_array[@]}"
do
echo $i
done
foo1_array = .... # obtain array from mymod.foo1(pass arg count from bash)
for j in "${foo1_array[@]}"
do
echo $j
done
如何在 bash 中实现它?
版本信息:
python 2.6.5 庆典:4.1.5
最佳答案
第二次尝试 - 这次 shell 首当其冲。
给定包含以下内容的 foo.py:
def foo():
foo = ('String', 'Tuple', 'From', 'Python' )
return foo
然后按如下方式编写您的 bash 脚本:
#!/bin/bash
FOO=`python -c 'from foo import *; print " ".join(foo())'`
for x in $FOO:
do
echo "This is foo.sh: $x"
done
其余部分是从 Python 端驱动集成的第一个答案。
python
import os
import subprocess
foo = ('String', 'Tuple', 'From', 'Python' )
os.putenv('FOO', ' '.join(foo))
subprocess.call('./foo.sh')
庆典
#!/bin/bash
for x in $FOO
do
echo "This is foo.sh: $x"
done
关于python - 将 python 数组传递给 bash 脚本(并将 bash 变量传递给 python 函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11392033/