如何从bash中的stdout读取数组

时间:2016-12-22 13:52:38

标签: python bash stdout

我正在从我的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个变量或数组?

2 个答案:

答案 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]}

... ...