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

ech*_*cho 10 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[@]}"
Run Code Online (Sandbox Code Playgroud)

cho*_*oba 16

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

...
val=$1
shift
arr=("$@")
...
Run Code Online (Sandbox Code Playgroud)