echo $_{0..10}
Скобки расширены до:
echo $_0 $_1 $_2 $_3 $_4 $_5 $_6 $_7 $_8 $_9 $_10
Он печатает значения одиннадцати странных переменных с именами _0
, _1
, _2
,и так далее. Они не установлены - вот почему вы ничего не видите - но если бы они были, вы бы:
$ _0=zero _1=one _2=two _3=three _4=four _5=five _6=six _7=seven _8=eight _9=nine _10=ten
$ echo $_{0..10}
zero one two three four five six seven eight nine ten
$ echo ''$_{0..10}'x'
То же самое, но сейчасесть x
после каждого имени переменной. Это не часть имени переменной. Это отдельный, буквальный символ x
, как если бы вы написали:
echo ${_0}x ${_1}x ${_2}x ${_3}x ${_4}x ${_5}x ${_6}x ${_7}x ${_8}x ${_9}x ${_10}x
Теперь вывод, когда переменные имеют значения:
$ _0=zero _1=one _2=two _3=three _4=four _5=five _6=six _7=seven _8=eight _9=nine _10=ten
$ echo ''$_{0..10}'x'
zerox onex twox threex fourx fivex sixx sevenx eightx ninex tenx
Это должнодостаточно, чтобы понять другие примеры в вашем вопросе.
Это также показывает, что связанный ответ - плохой способ повторить строку. Это полагается на то, что эти переменные не установлены. Не рекомендуется.