📅  最后修改于: 2023-12-03 15:09:36.903000             🧑  作者: Mango
在 bash 脚本编程中,有时候我们需要把数组作为参数传递给函数,以进行操作或处理。下面是一些方法可以达到这个目的。
$@
或 $*
表示所有参数,包括数组。我们可以在函数内部访问这些参数,就像访问普通的函数参数一样。
array=(a b c)
function foo() {
echo "The array is: $*"
}
foo "${array[@]}"
# The array is: a b c
这里我们使用 "${array[@]}"
把数组传递给函数 foo()
,然后在函数内部使用 $*
获取所有参数。
我们也可以把数组当作多个参数来传递给函数。函数内部可以使用 $1
、$2
等获取这些参数。
array=(a b c)
function foo() {
echo "The first array element is: $1"
echo "The second array element is: $2"
echo "The third array element is: $3"
}
foo "${array[@]}"
# The first array element is: a
# The second array element is: b
# The third array element is: c
在这个例子中,我们使用 "${array[@]}"
把数组传递给函数 foo()
,然后在函数内部使用 $1
、$2
、$3
获取这三个参数。
另一种方法是使用 shift
命令来移动参数位置,然后再在函数内部使用 $1
、$2
、$3
等获取这些参数。
array=(a b c)
function foo() {
shift
echo "The first array element is: $1"
shift
echo "The second array element is: $1"
}
foo "${array[@]}"
# The first array element is: b
# The second array element is: c
在这个例子中,我们首先使用 "${array[@]}"
把数组传递给函数 foo()
,然后在函数内部使用 shift
命令移动参数位置,然后再使用 $1
、$2
获取这两个参数。
这些是在 bash 中将数组传递给函数的三种方法。可以根据具体的需求使用不同的方法。