The problem I have is that it's not looping over my_array
Com isso:
declare -a my_array=$1
Você está criando uma matriz com apenas um valor: $1
, o argumento primeiro passado ao seu script. Portanto, não há muito a fazer por lá.
Se você quiser todos argumentos, tente:
declare -a my_array=$@
Em vez disso.