如何在不同的行上打印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中,都扩展为单独的args
然后是wordsplit和globbed。
>引用,“$ @”将每个元素扩展为单独的参数,而“$ *”
展开为args合并为一个参数:“$ 1c $ 2c …”(其中c是
IFS的第一个字符)。
你几乎总是想要“$ @”。同样适用于“$ {arr [@]}”。
总是报价!