• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

dynamic variable assignment in bash

 
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
Marshal
Pie
Posts: 24208
35
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
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic