Passing arrays between functions


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing arrays between functions
# 1  
Old 09-10-2008
Passing arrays between functions

Hi,
I have a function that hold 3 arrayies.
I need to pass them to another function as an input, for further use
Could you please explain how to do that.
Thanks
# 2  
Old 09-10-2008
Can you tell us which language/utility you are using?
# 3  
Old 09-10-2008
An example how you can pass two arrays to a function:

Code:
#!/bin/ksh

Pass_Arrays ()
{
  nelem=${#arr[*]}  # Total number of elements
  nelem1=$1         # Number of elements 1st array
  nelem2=$2         # Number of elements 2nd array
  shift; shift

  i=0
  
  while [ $i -lt $nelem1 ]; do  # Fill 1st array
    arr_one[$i]="$1"
    echo ${arr_one[$i]}
    shift
    let i=i+1
  done
  
  i=0
  
  while [ $i -lt $nelem2 ]; do  # Fill 1st array
    arr_two[$i]="$1"
    echo ${arr_two[$i]}
    shift
    let i=i+1
  done
}

args1=( One two three four )
args2=( Five six seven )

nelements1=${#args1[*]}
nelements2=${#args2[*]}

Pass_Arrays `echo $nelements1 $nelements2 ${args1[@]} ${args2[@]}`

exit 0

Regards
# 4  
Old 09-11-2008
Hi Franklin,

Thank you for your detailed example.
I dont understand why its faild to run :

vi test5.sh

Code:
#!/bin/ksh

Pass_Arrays ()
{
  nelem=${#arr[*]}  # Total number of elements
  nelem1=$1         # Number of elements 1st array
  nelem2=$2         # Number of elements 2nd array
  shift; shift

  i=0
  
  while [ $i -lt $nelem1 ]; do  # Fill 1st array
    arr_one[$i]="$1"
    echo ${arr_one[$i]}
    shift
    let i=i+1
  done
  
  i=0
  
  while [ $i -lt $nelem2 ]; do  # Fill 1st array
    arr_two[$i]="$1"
    echo ${arr_two[$i]}
    shift
    let i=i+1
  done
}

args1=( One two three four )
args2=( Five six seven )

nelements1=${#args1[*]}
nelements2=${#args2[*]}

Pass_Arrays `echo $nelements1 $nelements2 ${args1[@]} ${args2[@]}`

exit 0

Code:
/tmp >./test5.sh 
./test5.sh[29]: syntax error: `(' unexpected

==>The error is related to this line: args1=( One two three four )

Thanks Again for your kindly help.

Last edited by Franklin52; 04-07-2011 at 11:10 AM.. Reason: code tags
# 5  
Old 09-11-2008
Maybe your version doesn't support that way to fill an array, replace these lines:

Code:
args1=( One two three four )
args2=( Five six seven )

with:

Code:
set -A args1 One two three four
set -A args2 Five six seven

Regards

Last edited by Franklin52; 09-11-2008 at 07:04 AM..
# 6  
Old 09-11-2008
Hi Franklin,
Its worked !
Thanks again .
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ksh While Loop - passing variables to functions

I'm reading a text file using a while loop but when I call a function from within this loop it exits that same iteration … even though there are many more lines in the file to be read. I thought it was something to do with the IFS setting but it appears that a function call (when run... (3 Replies)
Discussion started by: user052009
3 Replies

2. Shell Programming and Scripting

Python passing multiple parameters to functions

Hi, I am a beginner in python programming. In my python script have a main function which calls several other functions. The main function gets its input by reading lines from a input text file. I call the main function for every line in input text file through a loop. def main(line): var1... (6 Replies)
Discussion started by: ctrld
6 Replies

3. Shell Programming and Scripting

Arrays and functions

Hi Guys! I need to solve this. I want an array to be created by a certain calculation for which I created a function. Now this array is not getting created. See script below I want array b to be the factorial value of array element a. Help is needed. Thanks! #!/bin/bash echo "Number of... (17 Replies)
Discussion started by: ambijat
17 Replies

4. Programming

Passing an instance of struct to functions in other src files

I am trying to work out the best syntax for a relatively simple operation. The goal is to declare an instance of a struct and pass it around to be populated and have the data manipulated. There is an extra wrinkle in that the functions are in different src files. The main is simple, #include... (5 Replies)
Discussion started by: LMHmedchem
5 Replies

5. Shell Programming and Scripting

Passing array to functions in ksh script

Let me know if there is a way to pass array to a funtion in ksh script. function isPresent { typeset member member=$1 dbList=$2 echo '$1:' $1 echo '$2' $dbList The array will be at the second position....something like this isPresent 12 <array> if then echo... (3 Replies)
Discussion started by: prasperl
3 Replies

6. Shell Programming and Scripting

perl - passing hash references to functions

hi there I have the following script in which i have created a PrintHash() function. I want to pass to this function the reference to a hash (in the final code i will be passing different hashes to this print function hence the need for a function). I am getting an error Type of arg 1 to... (1 Reply)
Discussion started by: hcclnoodles
1 Replies

7. Shell Programming and Scripting

perl functions and arrays

Hi, First I will tell my objective of this function (function one). I have a table for ex: id passwd name -- ------ ----- 1 fdhgfs werwer 2 fsdfs sdfsdf 3 sdfs sdfsdf 4 fdsfs dssdf . . . . . . The id, passwd and name are the arguments for another function say two. (1 Reply)
Discussion started by: mercuryshipzz
1 Replies

8. Shell Programming and Scripting

Passing arrays to oracle from unix

Hi all... Im looking to pass the contents of a simple file to Oracle so that it can be stored in a database table. The best way i can think of to avoid overhead is to loop through the contents of the file and store the data in a bash array. then the array can be passed to SQL Plus where... (4 Replies)
Discussion started by: satnamx
4 Replies

9. Shell Programming and Scripting

passing command line parameters to functions - sh

All, I have a sh script of the following tune: function a () { #functionality.. } function b () { #functionnlity.. } function check () { # this function checks for env and if all fine call build } function usage () { #sh usage details } function build () { #calls either a or b or... (5 Replies)
Discussion started by: vino
5 Replies

10. Shell Programming and Scripting

Passing arrays to oracle from unix

Hi all Iam trying to send an array to oracle procedure from unix. Iam writing a program in K Shell to pass this array to oracle. Is it possible. Please advice thanks Krishna (7 Replies)
Discussion started by: krishnasai
7 Replies
Login or Register to Ask a Question