Если вы хотите передать индивидуальные аргументы массива a
, b
, c
, d
, e
в вашу функцию, используйте foo "${identifier[@]}"
. Затем в функции вы можете использовать $#
для получения количества аргументов.
Или, если вы хотите передать имя переменной в вашу функцию, вы можете использовать локальную nameref
переменную idn
которая является ссылкой на массив identifier
.
foo() {
echo "n=$#"
}
foo2() {
local -n idn=$1
echo "n=${#idn[@]}"
}
identifier=(a b c d e)
echo "len is ${#identifier[*]}"
foo "${identifier[@]}"
foo2 identifier
Вывод:
len is 5
n=5
n=5