Not all your passed values will be single values; you may need to pass an array to the function. Let's see how to pass an array as a parameter:
#!/bin/bash myfunc() { arr=$@ echo "The array from inside the function: ${arr[*]}" } test_arr=(1 2 3) echo "The original array is: ${test_arr[*]}" myfunc ${test_arr[*]}
From the result, you can see that the used array is returned the way it is from the function.
Note that we used $@ to get the array inside the function. If you use $1, it will return the first array element only:
#!/bin/bash myfunc() { arr=$1 echo "The array from inside the function: ${arr[*]}" } my_arr=(5 10 15) echo "The original array: ${my_arr[*]}" myfunc ${my_arr[*]}
Because we used $1, it returns only the first array element.