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