我正在从我的bash脚本执行python脚本。 python脚本输出4行到stdout。我想将这4行的输出存储在bash中的4个不同变量中,或者将4个元素存储在一个数组中。
当我自己运行我的python脚本时,我在stdout上看到了4行:
$ python my_script.py
line1
line2
line3
line4
在我的bash脚本中,我已经完成了这个:
OUTPUT="$(python my_script.py)"
echo "${OUTPUT}"
readarray -t y <<<"$OUTPUT"
在我执行echo $y
之后,我只看到第一行(line1
)的输出。
如何将python脚本的输出用作4个变量或数组?
答案 0 :(得分:2)
$y
是数组的第一个元素。 ${y[@]}
将为您提供所有这些内容。
echo "${y[@]}"
答案 1 :(得分:-1)
你有bash作为主要解析器还是有bash shabang。这是因为sh没有这个很好的数组处理...
但是,如果你有为什么不在数组创建括号运行python脚本时创建bash数组?然后使用Johns方式打印它们。
OUTPUT=( $(python my_script.py) )
echo "len of OUTPUT=${#OUTPUT[@]} and the data is:" ${OUTPUT[@]}
echo "Second entry is=" ${OUTPUT[1]}
... ...