<Попередній | зміст | Наступна>
Читання файлів за допомогою циклів
while і while можуть обробляти стандартне введення. Це дозволяє обробляти файли з циклами while і while. У наступному прикладі ми відобразимо вміст файлу distros.txt, який використовувався в попередніх розділах:
#! / бін / баш
# while-read: читати рядки з файлу під час читання випуску дистрибутивної версії; робити
printf "Дистрибутив: %s\tВерсія: %s\tВипущено: %s\n" \
$distro \
$версія \
$release зроблено < distros.txt
#! / бін / баш
# while-read: читати рядки з файлу під час читання випуску дистрибутивної версії; робити
printf "Дистрибутив: %s\tВерсія: %s\tВипущено: %s\n" \
$distro \
$версія \
$release зроблено < distros.txt
Щоб переспрямувати файл у цикл, ми розміщуємо оператор перенаправлення після зроблений заяву. Цикл буде використовувати зчитування для введення полів із перенаправленого файлу. The зчитування Команда вийде після прочитання кожного рядка з нульовим статусом виходу, поки не буде досягнуто кінця файлу. У цей момент він вийде з ненульовим статусом виходу, тим самим завершивши цикл. Також можна передати стандартний вхід у цикл:
#! / бін / баш
# while-read2: читання рядків з файлу
сортування -k 1,1 -k 2n distros.txt | під час читання випуску дистрибутивної версії; do printf "Дистро: %s\tВерсія: %s\tВипущено: %s\n" \
$distro \
$версія \
$release
зроблений
#! / бін / баш
# while-read2: читання рядків з файлу
сортування -k 1,1 -k 2n distros.txt | під час читання випуску дистрибутивної версії; do printf "Дистро: %s\tВерсія: %s\tВипущено: %s\n" \
$distro \
$версія \
$release
зроблений
Тут ми беремо вихід сортувати команди та відобразити потік тексту. Однак важливо пам’ятати, що оскільки конвейер буде виконувати цикл у підоболонці, будь-які змінні, створені або призначені в циклі, будуть втрачені, коли цикл завершиться.