Я хочу создать функцию в 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[@]}"
Ваш код почти завершен. Просто добавьте shift
после присвоения $val
, он удалит первый элемент из массива $@
.
...
val=$1
shift
arr=("$@")
...