Bash 将数组和非数组参数传递给函数

Bash 将数组和非数组参数传递给函数

我想在 Bash 中创建一个接受 2 个参数的函数。一个参数只是一个值,另一个参数是一个数组。我将循环遍历该数组并使用数组元素和另一个函数参数执行操作。它将是这样的(我不知道正确的语法):

#!/bin/bash

function sumOverArray() {
   val=$1
   arr=("$@")
   for i in "${arr[@]}";
   do
      sum=$((i + val))
      echo "sum: $sum"
   done
}

array=(1 2 3)

sumOverArray 3 "${array[@]}"

答案1

您的代码几乎已完成。只需shift在赋值后添加$val,它就会从数组中删除第一个元素$@

...
val=$1
shift
arr=("$@")
...

相关内容