Parâmetros posicionais referem-se aos argumentos do script no nível principal do script, mas a função argumentos no corpo da função. Então
print_something Something
iria realmente imprimir Something
.
Se você quiser passar os argumentos do script para uma função, você deve fazer isso explicitamente. Use
print_something "$1"
para passar o primeiro argumento ou
print_something "$@"
para passar todos eles, embora a função no exemplo use somente o primeiro.