小编典典

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

all

如何在单独的行上打印 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

阅读 70

收藏
2022-04-27

共1个答案

小编典典

尝试这样做:

$ printf '%s\n' "${my_array[@]}"

$@和的区别$*

  • 未引用,结果未指定。在 Bash 中,两者都扩展为单独的 args,然后是 wordsplit 和 globbed。

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

你几乎总是想要"$@". 也一样"${arr[@]}"

总是引用他们!

2022-04-27