File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Linux / UNIX and the fly likes dynamic variable assignment in bash Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Engineering » Linux / UNIX
Bookmark "dynamic variable assignment in bash" Watch "dynamic variable assignment in bash" New topic

dynamic variable assignment in bash

Thomas Murphy

Joined: Dec 14, 2006
Posts: 23
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

Joined: Jul 08, 2003
Posts: 24166

"eval" should work:

eval user$i=${line_array[i]}

[Jess in Action][AskingGoodQuestions]
Thomas Murphy

Joined: Dec 14, 2006
Posts: 23
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

Joined: Dec 14, 2006
Posts: 23
As it happens the solution is the following:

eval echo \$user$i
I agree. Here's the link:
subject: dynamic variable assignment in bash
Similar Threads
Please Help : Problem getting submitted value for dynamic input text field
Help with jstl forEach spring 2.0 binding
How to pass dynamic value to resource bundle param like {0}
Some JQuery not working Mozila Firefox 7.0
Editing the bashrc file