Ответ 1
В частности, ваш вопрос относится к "позиционным параметрам". Использование $var вместо ${var} является сокращением в bash. В большинстве случаев он работает хорошо. Bash переменные должны начинаться с буквы или подчеркивания. Он внутренне обрабатывает переменные, начинающиеся с цифры как "позиционный параметр". Когда Bash обнаруживает позиционный параметр, он смотрит только на первую цифру, поэтому $10 возвращает $1 "0". Вызывая ${10}, вы инструктируете Bash посмотреть на полную переменную, а не на встроенную по умолчанию первую цифру.
Как это так? Понятия не имею. Наследие, которое было расширено, - это мое предположение. "Кому когда-нибудь понадобится больше, чем....?"