• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3362
  • Last Modified:

Array in bourne shell?

Can we simulate a array in bourne shell?  If yes, how?
0
ramalaks
Asked:
ramalaks
  • 4
  • 3
1 Solution
 
chris_calabreseCommented:
In a POSIX-compliant shell, you get name[number] style arrays.  If you're running genuine olde fashioned Bourne shell, however, you can't do that.  You could, in theory, cobble together something that looks like
  get_value name_number
  set_value name_number value
but this would be greatly complicated by the fact that genuine olde fashioned Bourne shell also does not support shell functions.
0
 
ramalaksAuthor Commented:
You mean, form the string in such a way that it appears as array element?

Will this work if the array size is not known?  
0
 
ozoCommented:
What array operations do you want to simulate?
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
ramalaksAuthor Commented:
I will have to use array of strings and the size is based on the input argument to the shell script which is not a fixed value.
0
 
chris_calabreseCommented:
You haven't answered the fundamental question posed by my original post.  Are you using genuine olde fashioned Bourne shell, or aren't you?  If you're writing your own script, that sounds like you're under no constraints as far as what scripting language you use, so you can use one that's based on POSIX.2 compliant shell such as Korn Shell (ksh).  Actually, most modern .*x systems have a POSIX compliant /bin/sh as well.

The syntax looks like this
  index=257
  vbl["$index"]=hello
  echo "${vbl[$index]}"

There's no need to pre-declare the size of the array (as there was in early version of Korn Shell).
0
 
ramalaksAuthor Commented:
Sorry chris, It is old fashioned bourne shell which does not support arrays.
That is why, I asked if we can simulate by string cat to form variables look  like array. I dont know how to do that.

Yes, Csh, and Ksh support arrays. I can always use ksh. But I was curious to know how to simulate array in bourne becuase, I have done almost 50% of my script in Bourne..at one point I will need an array. Thanks

I still want to know how do we simulate array in bourne shell?  
0
 
chris_calabreseCommented:
index=257
value="hello world"
eval "array_$index='$value'"
eval echo '"$'"array_$index"'"'
0
 
ramalaksAuthor Commented:
eval "array_$no='$i'"
eval echo "$"array_$no""


Works. Thanks and points to chris.
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now