Archaic wrote:
I'm writing a function that will script the generation of the ifconfig
subdirs. The problem is that I'm trying to expand the value of a
variable where the variable name itself is a variable. EX:
eth0_onboot=yes
eth1_onboot=no
The relevant part of the function is this:
mknet ()
{
net_dir=/etc/sysconfig/network-devices/ifconfig.$1
mkdir $net_dir
echo "ONBOOT=$1_onboot" >$net_dir/$2
<..>
and the function is called as 'mknet <device> <service>' All the
information as to what to put into the fields is pre-defined as exported
variables.
The output of the above echo is "ONBOOT=eth0_onboot" (assuming eth0 was
the device given in the call to mknet).
I can't seem to find a way to expand $1_onboot and then get the value of
the expanded variable name.
Any ideas?
Is this what you're looking for?
Assume that the value of a variable is the name of a second variable.
Is it somehow possible to retrieve the value of this second variable
from the first one? For example, if a=letter_of_alphabet and
letter_of_alphabet=z, can a reference to a return z? This can indeed
be done, and it is called an indirect reference. It uses the unusual
eval var1=\$$var2 notation.
This comes from Section 9.5 of "Advanced Bash-Scripting Guide." I also
think I remember that it can take the form of A=SOMETHING, B=$($A). If
I'm right there are some examples in the bootscripts--don't know which
ones. In fact, I downloaded that guide so that I could understand some
of the scripts that I was putting on my box while I was building.
That scripting guide is really great. After the quote that I provided,
it gives some scripting examples.
Dan
--
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page