How to define array in multiple lines in Shell

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?

5

1 Answer

If you want to print the whole array, you need:

echo ${messages[@]}
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like