Generate array name at run time Korn shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Generate array name at run time Korn shell
# 1  
Old 05-04-2010
Generate array name at run time Korn shell

Hi,

I am trying to define number of array based on constant derived during execution phase of a script. Here is what i am trying..

Code:
#First Part, Get LUN input from User
lun_count=4
count=0
set -A my_lun
while :
do
while [[ $lun_count -ne 0 ]]; do
        read L?"Enter Lun "$count" Number:"
        my_lun[count]=${L}
        lun_count=$(( $lun_count-1 ))
        count=$(( $count+1 ))
done

#Second Part, Get Slices input from user for each LUN.
lun_count=4
if [ "$lun_count" -gt 1 ];
then
count=0
while [[ $count -lt ${#my_lun[*]} ]]; do
set -A my_slice_${my_lun[$count]}
echo "Enter Slices number in  LUN: ${my_lun[$count]}:"
export count1=0
while :
do
        read g1?"Enter Slice Number:"
        [ -z "${g1}" ] && break
        my_slice_${my_lun[$count]}[$count1]=${g1}
        count1=$(( $count1+1))
done
count=$(( $count+1 ))
fi

My question is in the second part, where i am dynamically generating the Array name & then assigning element values to it depending on the counter.

For example:

For the first loop, i give two LUN numbers, say 10 & 11. So, my first array would be

my_lun[0]=10
my_lun[1]=11

For the second loop, since in generating the array name based on the LUN name & i give 3 values as elements for each array. So, my array should look like ( this is my question),

my_slice_10[0]=3
my_slice_10[1]=4
my_slice_10[2]=6

my_slice_11[0]=1
my_slice_11[1]=7
my_slice_11[2]=5

But i am getting the following error when i try to execute this..

my_slice_10[0]=3: not found

If i do not generate the array name at run time & define it at the beginning, then it is working fine. Any idea, what i am doing wrong here.

Any info would be of great help.

Thanks,
Harris.
# 2  
Old 05-04-2010
in the loop, try
Code:
eval "my_slice_${my_lun[$count]}[$count1]=${g1}"

# 3  
Old 05-04-2010
Worked perfectly fine. Thanks a bunch Frans!!!

-Harris.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to append to array within conditional block in ksh/korn shell?

Hi, I have one array created and some values are there in ksh. I want to append some other values to it based on some condition in if statement. #!/bin/ksh echo "---------------------------------------------------" set -A ipaddr_arr $(egrep -v '^#|^::|^$' /etc/hosts |awk '{print $1}'... (2 Replies)
Discussion started by: sanzee007
2 Replies

2. Shell Programming and Scripting

'*' vs. '@' in Korn Shell Array Variables

In order to use the shellcurses functions described at: Shell Curses function library I am learning about ksh, which has arrays. My trusty Kochan & Wood book says that for any Korn Shell array AR : ${AR } expands to all the defined array elements, and ${#AR } expands to the number... (3 Replies)
Discussion started by: Clovis_Sangrail
3 Replies

3. Shell Programming and Scripting

Korn Shell Array maximum value less than other value

I have a text file with several key words that I am trying to isolate. I have grepped for the unknowns in the text file, but each unknown has a corresponding location. I have created an array that holds all the unknowns and another array that holds all of the locations and compares them based on... (12 Replies)
Discussion started by: ther2000
12 Replies

4. Shell Programming and Scripting

need help with korn shell array

I have a korn shell script that reads a file with just one column in the file. If the file has more than 5 entries it is split using split -5. This means that is we have 15 entries I will end up with 3 files with 5 entries/lines in each and if I have 23 entries I will end up with 5 files with the... (2 Replies)
Discussion started by: kieranfoley
2 Replies

5. Shell Programming and Scripting

Run a process through inetd using korn shell!!!

Hi, I am trying to run a process through inetd using ksh. The entry in /etc/inetd.conf is Process_Name tcp nowait root /home/user/script script The script is as follows /usr/bin/ksh -c /path/process Recycling inetd services is successfully completed. But when the process is accessed... (8 Replies)
Discussion started by: vishi_82
8 Replies

6. Shell Programming and Scripting

I can't decalar an array in my korn shell script

I have a script that contains #!/usr/bin/ksh set -A X 'hallo' 'world' echo ${X} echo ${X} when I execute it I get an errror message sh ./test.ksh ./test.ksh: -A: bad option(s) but if I do this at the command prompt I am able to create it set -A myarray '1' '2' '3' echo ${myarray}... (4 Replies)
Discussion started by: zilla30066
4 Replies

7. Shell Programming and Scripting

Unix Korn Shell Array Issue (SunOS)

Hello, I'm currently messing around with arrays for the first time in scripting (Unix Korn Shell). All I'm trying to do right now before I make things complicated is read through and print out to screen whether the read file is or is not a directory. Here is my directory: ls -l total... (5 Replies)
Discussion started by: Janus
5 Replies

8. Shell Programming and Scripting

generate random number in korn shell

I want to be able to generate a random number within a korn shell script.. Preferably i would like to be able to state how many digits should be in this random number... ie 4 digits or 5 digits etc Any ideas? (2 Replies)
Discussion started by: frustrated1
2 Replies

9. Shell Programming and Scripting

korn shell array?

I read it is possible to provide values for an array with the -A option to the read statement; however, I have not been able to get this to work. When I execute a script with the -A option to the read statement, the shell complains that it is an illegal option. If this works, can someone provide... (5 Replies)
Discussion started by: cstovall
5 Replies

10. UNIX for Advanced & Expert Users

Oracle To Korn Shell Array

I'm attempting to populate an array in ksh using the following command: set -A $(SELECT_INVOICE | sed '/^$/d') SELECT_INVOICE is a function that executes the SQL query. Problem: Some of the invoice numbers have alpha characters with spaces(example: OVEN MICRO). The Korn shell is treating... (1 Reply)
Discussion started by: kdst
1 Replies
Login or Register to Ask a Question