Reputation: 33036
Is it possible to define an array in multiple lines in a shell script file? I tried something like this:
foo.sh
#!/usr/bin/env bash
messages=(
"Hello"
"World"
)
echo $messages
However, the output only has the first line "Hello", but not the second line "Word".
$ sh foo.sh
Hello
What is more confusing to me is that if I copy the content of foo.sh and paste it directly into the terminal, things work as I expected:
$ messages=(
"Hello"
"World"
)
echo $messages
Hello World
Anybody know why?
Upvotes: 92
Views: 86700
Reputation: 249113
If you want to print the whole array, you need:
echo ${messages[@]}
Upvotes: 76