Em vez de usar $1 use "$@" .
Você não precisa da variável local __pkg. Na minha opinião, isso complica desnecessariamente o roteiro.
Também notei que você está usando $[expression] para avaliação aritmética. Essa sintaxe está obsoleta. Eu recomendaria usar $((expression)) . Por exemplo, n=$((n+1)) .
Isso está além do escopo da sua pergunta, mas se você estiver com problemas com o apt-get de tempo limite, talvez seja interessante procurar soluções para evitar isso, como configurar um espelho local.