Пример 16-5. Альтернативная форма перенаправления в цикле while
Пример 16-5. Альтернативная форма перенаправления в цикле while
#!/bin/bash
# Это альтернативный вариант предыдущего сценария.
# Предложил: by Heiner Steven
#+ для случаев, когда циклы с перенаправлением
#+ запускаются в субоболочке, из-за чего переменные, устанавливаемые в цикле,
#+ не сохраняют свои значения по завершении цикла.
if [ -z "$1" ]
then
Filename=names.data # По-умолчанию, если имя файла не задано.
else
Filename=$1
fi
exec 3<&0 # Сохранить stdin в дескр. 3.
exec 0<"$Filename" # Перенаправить stdin.
count=0
echo
while [ "$name" != Smith ]
do
read name # Прочитать с перенаправленного stdin ($Filename).
echo $name
let "count += 1"
done <"$Filename" # Цикл читает из файла $Filename.
# ^^^^^^^^^^^^
exec 0<&3 # Восстановить stdin.
exec 3<&- # Закрыть временный дескриптор 3.
echo; echo "Имен прочитано: $count"; echo
exit 0
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
11.7. Добавление перенаправления для ladsh
11.7. Добавление перенаправления для ladsh Теперь, когда мы рассмотрели основные манипуляции с файлами, мы можем научить ladsh перенаправлению ввода и вывода через файлы и каналы. ladsh2.с, который мы представим здесь, работает с каналами (описанными символом | в командах ladsh, как
Настройка сервера для перенаправления запросов
Настройка сервера для перенаправления запросов BIND осуществляет преобразование имен одним из трех описанных ниже способов.1. Если пакет BIND настроен для поддержки запрошенного имени, сервер возвращает адрес, указанный в его конфигурационном файле.2. Если запрашиваемый
Задачи, решаемые с помощью перенаправления портов
Задачи, решаемые с помощью перенаправления портов Перенаправление портов может потребоваться в следующих ситуациях.• Если вы перемещаете сервер с одного компьютера на другой, но по каким-либо причинам не можете изменить конфигурацию сервера DNS. Перенаправление портов
Опции iptables для перенаправления портов
Опции iptables для перенаправления портов Обеспечить перенаправление портов на компьютере под управлением Linux, поддерживающем NAT, можно различными способами. Один из них состоит в использовании iptables. Соответствующая команда имеет следующий вид:# iptables -t nat -A PREROUTING -p tcp -i
16.3.9. Директивы перенаправления
16.3.9. Директивы перенаправления Довольно часто нужно перенаправить пользователя на другой ресурс: например, вы сменили хостера и из-за этого изменилось имя вашего сайта. Обычно при таком «переезде» у вас есть определенное время, чтобы сообщить вашим пользователям об
Альтернативная навигация
Альтернативная навигация Наша практика показала, что наличие альтернативной навигации в каталоге товаров сильно упрощает работу посетителей.Помимо классического разбиения товаров на категории и подкатегории можно предлагать навигацию по брендам, ценам, популярности,
3.1.5. Неявное преобразование в цикле for
3.1.5. Неявное преобразование в цикле for Рассмотрим программу (пример ForRange на компакт-диске), на форме которой находятся кнопка и панель, причем кнопка (это важно!) — не на панели, а на форме, а на панели нет никаких компонентов. Обработчик нажатия на кнопку выглядит следующим
3.2.9. Вычитание в цикле
3.2.9. Вычитание в цикле Рассмотрим еще один пример, иллюстрирующий ситуацию, которая часто озадачивает начинающего программиста (листинг 3.12, пример Subtraction на компакт-диске).Листинг 3.12. Накапливание ошибки при вычитанииprocedure TForm1.Button1Click(Sender: TObject);var R: Single; I: Integer;begin R:= 1; for I:= 1
14.3.1. Использование библиотеки Shell для перенаправления ввода/вывода
14.3.1. Использование библиотеки Shell для перенаправления ввода/вывода В классе Shell для создания объектов есть два метода: new и cd. Первый создает объект, ассоциированный с текущим каталогом, второй — объект, для которого рабочим будет указанный каталог.require "shell"sh1 =
17.4.3. Альтернативная иерархия классов
17.4.3. Альтернативная иерархия классов Хотя наша иерархия классов Query представляется вполне приемлемой, она вовсе не является единственно возможной. Например, AndQuery и OrQuery связаны с бинарной операцией, поэтому они в какой-то степени дублируют друг друга. Можно вынести все
Пример 10-4. Обработка списка файлов в цикле for
Пример 10-4. Обработка списка файлов в цикле for #!/bin/bash# list-glob.sh: Создание список файлов в цикле for с использованием# операции подстановки имен файлов ("globbing").echofor file in *do ls -l "$file" # Список всех файлов в $PWD (текущем каталоге). # Напоминаю, что символу "*" соответствует любое имя
Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд
Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд #!/bin/bash# уЩЫЬ for гЯ [гаЩгЫЯЭ], гЯкФСЮЮйЭ г аЯЭЯниР аЯФгдСЮЯзЫЩ ЫЯЭСЮФ.NUMBERS="9 7 3 8 37.53"for number in `echo $NUMBERS` # for number in 9 7 3 8 37.53do echo -n "$number "doneecho exit 0Более сложный пример использования подстановки
9. Форма
9. Форма Признаки слева направо (рис. 189): Рис. 189• форма почерка угловатая;• форма почерка округлая;• форма почерка школьная;• форма почерка с печатными буквами;• форма почерка каллиграфическая;• форма почерка