Linuxlab

Циклы в bash

Обновлено 3 июля 2026 г.

Цикл повторяет команды. for идёт по списку слов, while read - по строкам потока.

for x in alpha beta; do echo "$x"; done

while read -r line; do
  echo "line: $line"
done < ~/data/words.txt

Как это устроено: почему не for x in $(cat файл)

Запись for x in $(cat file) сначала читает весь файл, а потом bash режет его по пробелам и раскрывает шаблоны. Строка с пробелом развалится на части, а символ * превратится в список файлов. while read -r line читает ровно по строке и ничего не раскрывает - это правильный способ обходить строки.

Где применяется

Этот приём нужен в уроке Bash: пишем скрипты.