У меня ещё осталась пара тем по SSH, но пока отдохните, наберитесь сил… Я тут решил протестировать циклы for и поделиться результатами.

for ((i = 0 ; i < 100 ; i++)); do
    echo $i
done

Годный цикл. Главное — логичный и понятный.

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

# или его расширенная версия с шагом

for i in {50..5..-5}; do
    echo $i
done

Возможно построение циклов с нарастанием и убыванием. Циклы не допускают подстановки переменных в параметры цикла!!! Чистый башизм. Не рекомендую.

for i in $(seq 1 10); do
   echo $i
done

У разработчиков seq странная логика: seq [OPTION]... FIRST INCREMENT LAST. INCREMENT в середине!!! Несмотря на логику, рекомендую.

IFS=$'\n'
for i in $(cat /etc/passwd); do
   echo $i
done

Годный цикл для построчного чтения файла, но нужно помнить про разделитель IFS.

for i in "./space test/"*; do
    echo $i
done

Годный цикл для перебора файлов, обратите внимание: путь в кавычках, а звёздочка — нет.

for i in 5 9 8 3; do
  echo $i
done

Годный цикл с перечислятельством для не очень больших количеств.

echo 1 2 3 | for i in $(</dev/stdin); do
  echo $i
done

Если цикл не работает — верните IFS=" ".

Тройка упоротых конструкций:

for ((a=0,b=9;a<10;a++,b--)); do
   echo $a,$b
done

for ((a=1;a<2000;a+=a)); do
  echo $a
done

for i in $(j=10;while ((j--));do echo $j;done); do
   echo $i
done
Tagd Tagd
Tagd Tagd
Bash Master
Задать вопрос
Последнюю сам придумал. Можно вообще на собесах применять с предложением упростить или объяснить.

Продолжение следует… © by Tagd Tagd