bash在单独的行上打印数组元素?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

如何在单独的行上打印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
提问于
用户回答回答于

尝试这样做:

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

$@和之间的区别$*

  • 没有引用,结果没有说明。在Bash中,两者都扩展为分离参数,然后扩展词语和球体。
  • 引用,"$@"扩展每个元素作为一个单独的参数,同时"$*" 扩展到合并到一个参数的参数:( "$1c$2c..."其中c是第一个字符IFS)。

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

总是引用他们!

用户回答回答于

扫码关注云+社区