Visit Our UNIX and Linux User Community


Can there be multi-dimensional variable arrays in borne shell?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Can there be multi-dimensional variable arrays in borne shell?
# 1  
Old 05-15-2002
Bug Can there be multi-dimensional variable arrays in borne shell?

Hello -

I've serached the web but can't find much on array script variables (except that C-shell variables are arrays!)

I'm trying to form a 2-D string array: (this is what I want, but in java)

String[][] list = { {"one", "two"}, {"three"} };

I know this is a 1-D string array shell variable:

list="one two"

but how can I get another dimension? (and then index them in borne shell?) (I acknowledge that it might not be possible)

Basically I'd like to have a single variable, it's first set of elements always get evaluated, and if a 2nd dimension exists, apply slightly different logic on all of the other elements.

Any ideas would be greatly appreciated.

Thanks, Sean

Last edited by jparker; 05-16-2002 at 09:43 AM..
# 2  
Old 05-15-2002
I'm afraid you might have to build such array through logic, at least in Korn Shell (ksh).

As you mentionned, here's what's truly available:

# Arrays : one dimensional arrays of integers or strings
# automatically dimensionned to 1024
animal[0]="dog" ; animal[1]="horse" ; animal[3]="donkey"
set -A flower tulip gardenia " " rose
print ${animal[*]}
print ${flower[@]}
print "cell#1 content : ${flower[1]}
# 3  
Old 05-15-2002
Thanks so much -
It appears C-shell and K-shell like the [] syntax, but borne doesn't -

hopefully someone else has some ideas?

Cheers-
Sean
# 4  
Old 05-15-2002
If you need arrays you really should consider switching to ksh or bash. If that is really not possible, you can use eval to simulate arrays but the syntax and quoting concerns are nasty....

# simulate a[index]=string
index=5
eval a${index}=string

What this really did of course is create a vaiable called a5 which got the value. But you also could have an a4 variable and so on.

# simulate echo ${a[index]}

eval echo \$a${index}

# simulate x=${a[index]}

eval x=\$a${index}
# 5  
Old 05-15-2002
Thanks a lot - I know it looks nasty but it does what I wanted -
atleast I'm learning a bit more.

Cheers -

Sean

Previous Thread | Next Thread
Test Your Knowledge in Computers #247
Difficulty: Easy
By 1973, the File Transfer Protocol (FTP) specification had been defined (RFC 354) and implemented, enabling file transfers over the ARPANET.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Multi Dimensional array in bash

Hi, I'm developing a script which contains a multi dimensional array, however for some reason the array is not iterating. When executing the script, services are listed as arguments from argument 2. Ex voice data sms. service=${@:2}; for services in $service do ... (2 Replies)
Discussion started by: nms
2 Replies

2. Shell Programming and Scripting

Multi Dimensional array

I have an array of names. Each one of the name, has a number represented to it. For example A has an ID 8, B has an ID 2. What I am after is a for loop that when the array is in position 1, a particular variable is set to the value of position 1 in array 2 declare -a arr=("A" "B" "C"... (6 Replies)
Discussion started by: nms
6 Replies

3. UNIX for Dummies Questions & Answers

Help: stdin to multi-dimensional array

I cant get out of this while loop at the beginning of my program. Just reading from stdin one char at a time and storing it into a multi-array. Need to fix it with in two hours. #include <sys/wait.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include... (1 Reply)
Discussion started by: unt_engn
1 Replies

4. Shell Programming and Scripting

sorting multi dimensional array

Hi there, Can someone let me know how to sort the 2 dimensional array below by column 1 then by column 2? 22 55 2222 2230 33 66 44 58 222 240 11 25 22 60 33 45 output: 11 25 22 55 22 60 33 45 33 66 44 58 (6 Replies)
Discussion started by: phoeberunner
6 Replies

5. Shell Programming and Scripting

Match elements in an AWK multi-dimensional array

Hello, I have two files in the following format; file1: A B C D E F G H I J K L file2: 1 2 3 4 5 6 7 8 9 10 11 12 I have read them both in to multi-dimensional arrays. I need a file that has column 2 of the first file printed out for each column 3 of the second file ie... ... (3 Replies)
Discussion started by: cold_Que
3 Replies

6. Shell Programming and Scripting

PHP: how can I delete empty/NULL elements from a multi-dimensional array.

Hi all I have a file that i'm running and exec(cat ./dat) against..and putting its contents into any array, then doing an exploding the array into a multi-dimension array... The 15 multi-dimensional arrays have elements that are null/empty, I would like to remove/unset these elements and then... (2 Replies)
Discussion started by: zeekblack
2 Replies

7. Shell Programming and Scripting

Manipulating Pick multi dimensional data with awk.

Hi. I am reasonably new to awk, but have done quite a lot of unix scripting in the past. I have resolved the issues below with unix scripting but it runs like a dog. Moved to awk for speed and functionality but running up a big learning curve in a hurry, so hope there is some help here. I... (6 Replies)
Discussion started by: mike.strategis
6 Replies

8. Shell Programming and Scripting

Multi Dimensional array in KSH

Is there any way to use multi dim. array in KSH ? (1 Reply)
Discussion started by: sinpeak
1 Replies

9. Programming

Multi-Dimensional Arrays

So, I'm fooling around with multi demtional arrays, and I made this in a short amount of time: #include <stdio.h> main(int argc, char *argv) { char blah = { {'a', 'b'}, {'b', 'a'} }; int i = 0; while (i < 2) { if (argv == blah) printf("%c\n", blah); i++; } } The goal... (3 Replies)
Discussion started by: Octal
3 Replies

Featured Tech Videos