Try doing this :
$ printf '%s\n'"${my_array[@]}"
The difference between $@
and $*
:
Unquoted, the results are unspecified. In Bash, both expand to separate argsand then wordsplit and globbed.
Quoted,
"$@"
expands each element as a separate argument, while"$*"
expands to the args merged into one argument:"$1c$2c..."
(wherec
isthe first char ofIFS
).
You almost always want "$@"
. Same goes for "${arr[@]}"
.
Always double quote them!