Sponsored Content
Top Forums Shell Programming and Scripting Generate array name at run time Korn shell Post 302418332 by harris2107 on Tuesday 4th of May 2010 01:54:13 AM
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.
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
platform::shell(n)					       Tcl Bundled Packages						platform::shell(n)

__________________________________________________________________________________________________________________________________________________

NAME
platform::shell - System identification support code and utilities SYNOPSIS
package require platform::shell ?1.1.4? platform::shell::generic shell platform::shell::identify shell platform::shell::platform shell _________________________________________________________________ DESCRIPTION
The platform::shell package provides several utility commands useful for the identification of the architecture of a specific Tcl shell. This package allows the identification of the architecture of a specific Tcl shell different from the shell running the package. The only requirement is that the other shell (identified by its path), is actually executable on the current machine. While for most platform this means that the architecture of the interrogated shell is identical to the architecture of the running shell this is not generally true. A counter example are all platforms which have 32 and 64 bit variants and where a 64bit system is able to run 32bit code. For these running and interrogated shell may have different 32/64 bit settings and thus different identifiers. For applications like a code repository it is important to identify the architecture of the shell which will actually run the installed packages, versus the architecture of the shell running the repository software. COMMANDS
platform::shell::identify shell This command does the same identification as platform::identify, for the specified Tcl shell, in contrast to the running shell. platform::shell::generic shell This command does the same identification as platform::generic, for the specified Tcl shell, in contrast to the running shell. platform::shell::platform shell This command returns the contents of tcl_platform(platform) for the specified Tcl shell. KEYWORDS
operating system, cpu architecture, platform, architecture platform::shell 1.1.4 platform::shell(n)
All times are GMT -4. The time now is 11:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy