# function return array

**URL:** <https://community.unix.com/t/function-return-array/195651>\
**Category:** Shell Programming and Scripting\
**Created:** [May 5, 2008, 2:01am UTC](https://community.unix.com/t/function-return-array/195651 "2008-05-05T02:01:22Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![dophine](https://community.unix.com/letter_avatar/dophine/32/5_5575768a8748004e209b776fc1b2916d.png) [@dophine](https://community.unix.com/u/dophine)\
**Post date:** [May 5, 2008, 2:01am UTC](https://community.unix.com/t/function-return-array/195651/1 "2008-05-05T02:01:22Z")

</div>

Hi all

I would like to know if there is a way to return an array for a function.  
As I know function can return all the contents in an array, I want to return an array type.

---

<div class="post-metadata">

**Author:** ![Annihilannic](https://community.unix.com/user_avatar/community.unix.com/annihilannic/32/4183_2.png) [@Annihilannic](https://community.unix.com/u/Annihilannic)\
**Post date:** [May 5, 2008, 2:10am UTC](https://community.unix.com/t/function-return-array/195651/2 "2008-05-05T02:10:53Z")

</div>

What scripting language?

---

<div class="post-metadata">

**Author:** ![dophine](https://community.unix.com/letter_avatar/dophine/32/5_5575768a8748004e209b776fc1b2916d.png) [@dophine](https://community.unix.com/u/dophine)\
**Post date:** [May 5, 2008, 2:20am UTC](https://community.unix.com/t/function-return-array/195651/3 "2008-05-05T02:20:13Z")

</div>

bash shell script

---

<div class="post-metadata">

**Author:** ![Annihilannic](https://community.unix.com/user_avatar/community.unix.com/annihilannic/32/4183_2.png) [@Annihilannic](https://community.unix.com/u/Annihilannic)\
**Post date:** [May 5, 2008, 2:52am UTC](https://community.unix.com/t/function-return-array/195651/4 "2008-05-05T02:52:21Z")

</div>

A function can only return a return code, which is a cardinal (positive integer or zero).

However a function can modify an array held in the calling script.

```nohighlight
$ cat function_return_array
#!/bin/bash

function myarray()
{
        a[1]=moja
        a[3]=three
}

a[1]=one
a[2]=two

myarray

echo ${a[1]}
echo ${a[2]}
echo ${a[3]}
$ ./function_return_array
moja
two
three
$

```

---

<div class="post-metadata">

**Author:** ![dophine](https://community.unix.com/letter_avatar/dophine/32/5_5575768a8748004e209b776fc1b2916d.png) [@dophine](https://community.unix.com/u/dophine)\
**Post date:** [May 5, 2008, 4:16am UTC](https://community.unix.com/t/function-return-array/195651/5 "2008-05-05T04:16:02Z")

</div>

so the array seems act as a globle variable,right?  
if a function is called several times in the script, then I need to store it in another array before calling it again, right?

---

<div class="post-metadata">

**Author:** ![Annihilannic](https://community.unix.com/user_avatar/community.unix.com/annihilannic/32/4183_2.png) [@Annihilannic](https://community.unix.com/u/Annihilannic)\
**Post date:** [May 5, 2008, 11:36pm UTC](https://community.unix.com/t/function-return-array/195651/6 "2008-05-05T23:36:55Z")

</div>

That's correct.

---

<div class="post-metadata">

**Author:** ![dophine](https://community.unix.com/letter_avatar/dophine/32/5_5575768a8748004e209b776fc1b2916d.png) [@dophine](https://community.unix.com/u/dophine)\
**Post date:** [May 6, 2008, 12:16pm UTC](https://community.unix.com/t/function-return-array/195651/7 "2008-05-06T12:16:26Z")

</div>

then I have another issue. how to assign an array value to another one i.e. clone?
