如何将Array作为参数与其他两个字符串参数一起传递给Shell脚本函数?

时间:2019-03-06 08:01:26

标签: bash shell sh

#!/bin/bash  
myfunc() {  
local new_arr  
new_arr=("$@")  
echo "Updated value is: ${new_arr[*]}"  
}  
my_arr=(4 5 6)  
x="test1"  
y="test2"  
echo "Old array is ${my_arr[*]}"  
myfunc ${my_arr[*]} $x $y   

该程序的输出为:

Old array is 4 5 6
Updated value is: 4 5 6 test1 test2

我想在函数myfunc()中分别访问x,y和my_array,
但是我不知道数组的大小。
像$ 1那样是my_array $ 2就是x等。.
但是我不知道如何在shell脚本中执行此操作。
请注意,我的bash版本是:-版本4.1.2

1 个答案:

答案 0 :(得分:2)

#!/bin/bash  
myfunc() {  
local new_arr  
first_variable=$1 && shift 
second_variable=$2 && shift
new_arr=("$@")  
echo "Updated value is: ${new_arr[*]}"  
}  
my_arr=(4 5 6)  
x="test1"  
y="test2"  
echo "Old array is ${my_arr[*]}"  
myfunc "$x" "$y" "${my_arr[@]}"

输出Old array is 4 5 6 Updated value is: 4 5 6