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[@]}"
6
задан 5 January 2018 в 02:24

1 ответ

Ваш код почти завершен. Просто добавьте shift после присвоения $val, он удалит первый элемент из массива $@.

...
val=$1
shift
arr=("$@")
...
8
ответ дан 5 January 2018 в 02:24

Другие вопросы по тегам:

Похожие вопросы: