1

I am trying to create nested array's dynamically from a string that has been parsed (parameter expansion) using a for loop in bash and I am failing:

user@server:/home/user> foo=one,two,three
user@server:/home/user> for i in ${foo//,/" "}; do echo ${i}; done
one
two
three
user@server:/home/user> for i in ${foo//,/" "}; do declare -a ${i}=(var1=foo var2=foo var3=foo); done
-bash: syntax error near unexpected token `('

I can create the nested array manually and it works:

user@server:/home/user> declare -a one=(var1=foo var2=foo var3=foo)
user@server:/home/user> echo ${one[*]}
var1=foo var2=foo var3=foo

Any help would be appreciated!

1 Answer 1

1
ecik@ecikovo / $ x=one
ecik@ecikovo / $ echo $x
one
ecik@ecikovo / $ declare -a $x=(var1=foo var2=foo)
bash: błąd składni przy nieoczekiwanym znaczniku `('
ecik@ecikovo / $ declare -a $x='(var1=foo var2=foo)'
ecik@ecikovo / $ echo ${one[0]}
var1=foo
ecik@ecikovo / $ echo ${one[1]}
var2=foo
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.