puzzle

Darryl House housed at infmx.informix.com
Tue Nov 27 11:36:59 AEST 1990


*OOPS* - I included the wrong file in the last message,
here is the right one. Sorry if this causes any
confusion...

The following is a Bourne shell script that illustrates
what I am trying to do: set a shell variable that
contains the contents of another one that is referred
to by concatenating two others. Sufficiently confusing?
Yeah, I thought so, too.

Note that I don't really want to keep track of how many
iterations there are, that'd be absurdly simple to track.
The application is too complex to describe here, but I
did fix the problem by using a C program rather than
a shell script. I just thought that this was a very
interesting puzzle.

--------------------------------------------------------
#! /bin/sh

# what I want is to be able to set
# the ITERATION variable to be the expanded
# version of $PREFIX$SUFFIX, i.e. the first iteration
# would be the contents of $firsttime, the second
# would be the contents of $secondtime. The following
# code gives me errors, and everything I try either gets
# the same substitution failure or just echoes the name
# of the variable, i.e. ($firsttime and $secondtime).

echo

firsttime="first_time"
secondtime="second_time"

PREFIX_WORDS="first second"
SUFFIX="time"

for PREFIX in $PREFIX_WORDS
do

# the following line doesn't work, but
# sort of illustrates what I want to do.
# I want this to be ITERATION=$firsttime the first time
# through and ITERATION=$secondtime the second time.

	ITERATION=${$PREFIX$SUFFIX}

    echo 'Iteration is $ITERATION'
done

echo

exit 0
--------------------------------------------------------

Required output:

prompt% program_name

Iteration is first_time
Iteration is second_time

prompt%

Any hints you can offer will be greatly appreciated.

Thank you, and have a nice day!



More information about the Comp.unix.internals mailing list