开发者社区 问答 正文

在Bash中的不同行上打印数组元素?

如何在单独的行上打印Bash数组的数组元素?此方法有效,但肯定有更好的方法:

$ my_array=(one two three) $ for i in ${my_array[@]}; do echo $i; done one two three 尝试过此方法,但没有用:

$ IFS=$'\n' echo ${my_array[*]} one two three

展开
收起
保持可爱mmm 2020-01-16 16:34:46 420 分享 版权
1 条回答
写回答
取消 提交回答
  • 尝试这样做:

    $ printf '%s\n' "${my_array[@]}" $@和之间的区别$*:

    未引用,结果未指定。在Bash中,两者都展开为单独的args,然后进行单词拆分和全局转换。

    带引号的"$@"元素将每个元素扩展为一个单独的参数,而"$*" 扩展为合并到一个参数中的args :("$1c$2c..."其中c是的第一个字符IFS)。

    你几乎总是想要"$@"。同样适用"${arr[@]}"。

    总是引用它们! 问题来源于stack overflow

    2020-01-16 16:34:58
    赞同 展开评论
问答分类:
问答标签:
问答地址: