首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在bash中从stdout读取数组

如何在bash中从stdout读取数组
EN

Stack Overflow用户
提问于 2016-12-22 13:52:37
回答 2查看 1.1K关注 0票数 1

我正在从bash脚本执行python脚本。python脚本输出4行到stdout。我想将这4行的输出存储在bash中的4个不同变量或一个包含4个元素的数组中。

当我单独运行python脚本时,我会看到stdout上的4行代码:

代码语言:javascript
复制
$ python my_script.py
line1
line2
line3
line4

在我的bash脚本中,我已经这样做了:

代码语言:javascript
复制
OUTPUT="$(python my_script.py)"

echo "${OUTPUT}"

readarray -t y <<<"$OUTPUT" 

之后,当我执行echo $y时,我只看到第一行(line1)的输出。

如何将python脚本的输出用作4个变量或数组?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-22 13:56:35

$y是数组的第一个元素。${y[@]}会给你所有的。

代码语言:javascript
复制
echo "${y[@]}"
票数 2
EN

Stack Overflow用户

发布于 2016-12-22 14:17:21

您是将bash作为主解析器还是使用。这是因为sh没有很好的数组处理..。

但是,如果您有,为什么不在通过数组创建括号运行python脚本时创建bash数组呢?然后用约翰的方式打印出来。

代码语言:javascript
复制
OUTPUT=( $(python my_script.py) )
echo "len of OUTPUT=${#OUTPUT[@]} and the data is:" ${OUTPUT[@]}
echo "Second entry is=" ${OUTPUT[1]}

... ...

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41284754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档