Sua sintaxe está basicamente correta. (Você não precisa de nenhum ;
, mas isso não é um problema).
Parece que, de alguma forma, o seu script não é realmente executado, porque:
echo ${#nonexistentarray[@]}
Isto irá sempre imprimir um número que seja 0 (se a matriz não existir) ou superior (se a matriz ou a variável existir).
Então, no seu script, se essas duas linhas forem realmente executadas:
lastIdex=${#usersArr[@]};
echo "$lastIndex";
....... ok ... Há um erro de digitação: você está definindo o valor em lastIdex
, mas imprimindo lastIndex
... Então, provavelmente, esse é o seu problema.