Баш для цикла с диапазоном {#..#}

{#..#} генерирует последовательность чисел или символов, аналогично range() в Python. Если я выполню команду echo {1..5} в командной строке у меня есть:

1 2 3 4 5

Вместо этого следующий скрипт bash не работает должным образом.

for i in {1..3};
do
    echo "Iteration $i"
done

напечатает:

Iteration {1..3}

Зачем?
* Я мог бы использовать seq но я читаю это устарело ( http://www.cyberciti.biz/faq/bash-for-loop/)

1 ответ

Решение

Я попробовал ваш код (скопировать вставить в терминал), и он дал результат, отличный от того, что вы опубликовали:

for i in {1..3};
do
    echo "Iteration $i"
done
#---OUTPUT BELOW---
Iteration 1
Iteration 2
Iteration 3

Я использую Linux Mint 12 Lisa (производная от Ubuntu) с версией bash 4.2.10(1)-релиз

Другие вопросы по тегам