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 $messagesHowever, the output only has the first line "Hello", but not the second line "Word".
$ sh foo.sh
HelloWhat 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 WorldAnybody know why?
51 Answer
If you want to print the whole array, you need:
echo ${messages[@]} 1