如何将Python数组作为数组传递给shell脚本?

我有一个shell脚本(test.sh),我在这里使用bash数组 –

#!/bin/bash ... echo $1 echo $2 PARTITION=(0 3 5 7 9) for el in "${PARTITION[@]}" do echo "$el" done ... 

到目前为止,我已经硬编码PARTITION数组的值在我的shell脚本,你可以看到上面..

现在我有一个如下所述的Python脚本,我通过传递某些参数(如hello1hello2来调用test.sh shell脚本,这些参数是$1$2 。 现在,我如何将我的Python脚本中的jj['pp']jj['sp']传递给Shell脚本,然后在我的bash脚本中进行迭代,

下面的脚本不工作,如果我通过jj['pp']

 import subprocess import json import os hello1 = "Hello World 1" hello2 = "Hello World 2" jsonData = '{"pp": [0,3,5,7,9], "sp": [1,2,4,6,8]}' jj = json.loads(jsonData) print jj['pp'] print jj['sp'] # foo = (0, 3, 5, 7, 9) # os.putenv('FOO', ' '.join(foo)) print "start" subprocess.call(['./test.sh', hello1, hello2, jj['pp']]) print "end" 

更新: –

JSON文件下面只会以这种格式 –

 jsonData = '{"pp": [0,3,5,7,9], "sp": [1,2,4,6,8]}' 

所以不知何故,我需要将其转换为Bash数组,同时传递给shell脚本..

蟒蛇

 import os import json import subprocess hello1 = "Hello World 1" hello2 = "Hello World 2" jsonData = '{"pp": [0,3,5,7,9], "sp": [1,2,4,6,8]}' jj = json.loads(jsonData) print jj['pp'] print jj['sp'] os.putenv( 'jj', ' '.join( str(v) for v in jj['pp'] ) ) print "start" subprocess.call(['./test.sh', hello1, hello2 ]) print "end" 

庆典

 echo $1 echo $2 for el in $jj do echo "$el" done 

采取从这里: 传递python数组到bash脚本(并且传递bash变量到python函数)