Страница 1 из 1
построчное считывание файла и обработка каждой строки
Добавлено: 20 дек 2024, 08:49
ya
Код: Выделить всё
#!/bin/bash
while read url; do
wget $url
done < urls.txt
Re: построчное считывание файла и обработка каждой строки
Добавлено: 26 мар 2025, 00:06
ya
Код: Выделить всё
#!/bin/bash
LineCount=0
while IFS='' read -r LinefromFile || [[ -n "${LinefromFile}" ]]; do
((LineCount++))
echo "Reading line $LineCount: ${LinefromFile}"
done < "$1"
передаем имя файла, который мы хотим, чтобы скрипт обрабатывал, в качестве параметра командной строки. Это будет единственный параметр, поэтому внутри скрипта $1 будет храниться имя файла. Мы перенаправляем этот файл в цикл while.
Цикл while устанавливает внутренний разделитель полей в пустую строку, используя присваивание IFS=. Это не позволяет команде read разбивать строки по пробелам. Только возврат каретки в конце строки считается истинным концом строки.
Предложение [[ -n \$ {LinefromFile}\ ]] учитывает возможность того, что последняя строка в файле не заканчивается символом возврата каретки. Даже если это не так, эта последняя строка будет обработана правильно и будет рассматриваться как обычная строка, совместимая с POSIX.