Вы уже используете функцию, почему вы ограничиваете себя массивами bash, а не массивом оболочки $ @
?
bash_array=(one two three)
set -- $bash_array
printf %s\\n "$@"
#output
one
two
three
IFS=/ ; echo "$*" ; echo "$@"
#output
/one/two/three
one two three
unset IFS ; in=$* ;
[ -n "${in#"${in%$2*}"}" ] && echo "$2 is in $@" || echo nope
#output
two is in one two three
Я полагаю, что проблема связана с вашими операторами if. Похоже, что если вы используете функцию, то квадратные скобки не нужны. Пожалуйста, посмотрите это:
Я полагаю, что вместо этого вам нужно сделать:
if array_contains2 $team1 "Alchemist" "Axe"; then
echo "This is true"
fi