Usando $ # en bucles bash

Estoy tratando de entender por qué este bucle no imprime un número para cada argumento proporcionado al script.

#!/bin/bash

for i in {1..$#}; do
  echo $i
done

En su lugar, cuando se suministra, por ejemplo. 3 argumentos, sale

{1..3}

Respuestas a la pregunta(2)

Su respuesta a la pregunta