This week's book giveaway is in the Kotlin forum.
We're giving away four copies of Kotlin in Action and have Dmitry Jemerov & Svetlana Isakova on-line!
See this thread for details.
Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

dynamic variable assignment in bash  RSS feed

 
Thomas Murphy
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi guys
I am stuck with what i would have thought to be a pretty easy part of a script.

basically i want to iterate a loop and assign a value to a dynamic variable:
my assignment and test are below:



the assignment is not working and i get an error:




so is there a way of assigning a value to a generated variable in bash?
i think my syntax is wrong judging by the error.
[ February 05, 2008: Message edited by: Thomas Murphy ]
 
Ernest Friedman-Hill
author and iconoclast
Sheriff
Posts: 24217
38
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"eval" should work:

eval user$i=${line_array[i]}
 
Thomas Murphy
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Ernest,
This has removed the error at least.

However i am referencing this variable now using: $user$i

This must be incorrect as it is still getting interpreted as 0 and not tim in the example above.
 
Thomas Murphy
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
As it happens the solution is the following:

eval echo \$user$i
 
Consider Paul's rocket mass heater.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!