TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #563 11.4K
Сегодня разберем, чем отличаются различные циклы при работе с файлами.

#!/bin/bash
seq 1 5 >file.txt

for i in $(<file.txt);do
echo $i
read -p 'press ENTER'
done
echo ---
while read i;do
echo $i
read -p 'press ENTER'
done <file.txt
rm file.txt
#--


Сохраняем в файл loop3.sh

chmod +x loop3.sh


Создаем файл из пяти нумерованных строк.

seq 1 5 > file.txt


Блок for: читаем файл, и выводим построчно. После каждой строки жмем ENTER для продолжения.

Блок while - тело цикла - один в один.

Запускаем: ./loop3.sh

1
press ENTER
2
press ENTER
3
press ENTER
4
press ENTER
5
press ENTER
---
1
3
5


Часть срок второго цикла потерялась. ENTER нажимать никто не просил.

Все дело в том, что циклы работают принципиально по-разному.

Цикл for in сначала вычисляет/считывает все значения для перебора в память, потом начинает с ними работать.

Цикл while(until) читает последовательно, по одному значению. Мало того в данном случае цикл работает НЕ С ФАЙЛОМ НАПРЯМУЮ, а с stdin, (куда мы перенаправляем файл) поэтому любое чтение stdin приводит к чтению записи файла. Результат вы видели.

Продолжение следует...

tags: #bash © by Tagd Tagd
—
🔔 @bashdays➡️ @gitgate
More from @bashdays
  1. Sep 29, 2026Самый жаркий холивар в команде — это не systemd, а какие заказать роллы на всю команду. Од…
  2. Sep 24, 2026Post #1565
  3. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  4. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  5. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
  6. Sep 11, 2026🤖 DevOps в эпоху AI трансформации: что работает уже сейчас! 17 сентября Сбер собирает Dev…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →