首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Bash中在单独的行上打印数组元素?

在Bash中在单独的行上打印数组元素?
EN

Stack Overflow用户
提问于 2013-03-29 04:53:48
回答 5查看 398.6K关注 0票数 279

如何在单独的行上打印Bash数组的数组元素?这个方法是可行的,但肯定还有更好的方法:

代码语言:javascript
复制
$ my_array=(one two three)
$ for i in ${my_array[@]}; do echo $i; done
one
two
three

我试过这个,但不起作用:

代码语言:javascript
复制
$ IFS=$'\n' echo ${my_array[*]}
one two three
EN

回答 5

Stack Overflow用户

发布于 2013-03-29 05:00:07

只需引用参数来回显:

代码语言:javascript
复制
( IFS=$'\n'; echo "${my_array[*]}" )

子shell有助于在使用后恢复IFS

票数 83
EN

Stack Overflow用户

发布于 2017-02-04 08:07:43

另一个有用的变体是通过管道连接到tr

echo "${my_array[@]}" | tr ' ' '\n'

这看起来简单紧凑

票数 8
EN

Stack Overflow用户

发布于 2015-05-01 16:52:18

我在一个巨大的for...if循环中尝试了这里的答案,但没有得到任何乐趣-所以我像这样做了,可能会很混乱,但完成了工作:

代码语言:javascript
复制
 # EXP_LIST2 is iterated    
 # imagine a for loop
     EXP_LIST="List item"    
     EXP_LIST2="$EXP_LIST2 \n $EXP_LIST"
 done 
 echo -e $EXP_LIST2

虽然这在列表中增加了一个空格,但这很好--我想让它缩进一点。还假设可以在原始$EP_LIST中打印"\n“。

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

https://stackoverflow.com/questions/15691942

复制
相关文章

相似问题

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