Книга: Искусство программирования на языке сценариев командной оболочки
Пример 16-7. Перенаправление в цикл for
Пример 16-7. Перенаправление в цикл for
#!/bin/bash
if [ -z "$1" ]
then
Filename=names.data # По-умолчанию, если файл не задан.
else
Filename=$1
fi
line_count=`wc $Filename | awk '{ print $1 }'`
# Число строк в файле.
#
# Слишком запутано, тем не менее показывает
#+ возможность перенаправления stdin внутри цикла "for"...
#+ если вы достаточно умны.
#
# Более короткий вариант line_count=$(wc < "$Filename")
for name in `seq $line_count` # "seq" выводит последовательность чисел.
# while [ "$name" != Smith ] -- более запутанно, чем в случае с циклом "while" --
do
read name # Чтение из файла $Filename, не со stdin.
echo $name
if [ "$name" = Smith ]
then
break
fi
done <"$Filename" # Перенаправление на ввод из файла $Filename.
# ^^^^^^^^^^^^
exit 0
Предыдущий пример можно модифицировать так, чтобы перенаправить вывод из цикла.
- Пример 16-4. Перенаправление в цикл while
- Пример 16-5. Альтернативная форма перенаправления в цикле while
- Пример 16-6. Перенаправление в цикл until
- Пример 16-7. Перенаправление в цикл for
- Пример 16-8. Перенаправление устройств (stdin и stdout) в цикле for
- Пример 16-9. Перенаправление в конструкции if/then
- Пример 16-10. Файл с именами "names.data", для примеров выше
- Пример 16-8. Перенаправление устройств (stdin и stdout) в цикле for
- Пример установочного скрипта
- Пример из практики
- Forced writes - палка о двух концах
- Forced Writes
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Жизненные циклы продуктов
- Примеры получения статистики
- Пример применения метода «пять почему»
- 7 Система Цикл: долгосрочные цели
- Пример 12-8. Частота встречаемости отдельных слов
- 1.2.5. Пример программы