Книга: Искусство программирования на языке сценариев командной оболочки

Пример 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

Предыдущий пример можно модифицировать так, чтобы перенаправить вывод из цикла.

Оглавление книги


Генерация: 1.458. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз