П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4096 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6756 раз(а).

Учебник HTML.
Просмотров 3717 раз(а).

Руководство по PHP5.
Просмотров 5991 раз(а).

Хостинг через призму DNS.
Просмотров 4809 раз(а).

Подборка текстов стандартных документов.
Просмотров 56244 раз(а).

Учебник PHP - Самоучитель
Просмотров 3702 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8335 раз(а).

Внешние атаки...
Просмотров 4563 раз(а).

Учебник PHP.
Просмотров 3172 раз(а).

SSI в примерах.
Просмотров 175 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство пользователя для GNU Awk

7. Выражения

7.11 Булевские выражения

Булевское выражение есть комбинация выражений сравнения или выражений соответствия с употреблением булевских операторов "или" (`----'), "и" (`&&') и "not" (`!') со скобками для управления порядком действий. Значение истинности булевского выражения вычисляется через значения истинности его компонент. Булевские выражения называются также логическими выражениями. Эти термины эквивалентны.

Булевские выражения могут употребляться всюду, где используются выражения сравнения и соответствия. Они могут использоваться в операторах if, while, do и for (см. главу 9 [Управляющие операторы в действиях], стр. 105). Они имеют численные значения (один если true, ноль если false), которые входят в игру, если значение булевского выражения присваивается переменной или используется в арифметике. Кроме того, каждое булевское выражение есть правильный образец , так что можно использовать единицу как образец при выполнении правил.

Приведем описания трех булевских операторов с примерами.

boolean1 && boolean2

True если  boolean1 и boolean2 есть  true. 

Например, следующий оператор
печатает текущую входную запись, 
если она содержит `2400' и `foo'.

if ($0 ~ /2400/ && $0 ~ /foo/) print

Подвыражение boolean2 вычисляется только если boolean1 есть true. Это может привести к различиям, если boolean2 содержит выражения с побочным эффектом: `$0 ~ /foo/ && ($2 == bar++)'.

Переменная bar не увеличивается, если нет  `foo' в записи.

boolean1 ---- boolean2

True если по крайней мере одна из boolean1 или boolean2 есть true. Например, следующий оператор печатает все записи из ввода, которые содержат или `2400' или `foo', или и то и другое.


if ($0 ~ /2400/ ---- $0 ~ /foo/) print

Подвыражение boolean2 вычисляется только если boolean1 есть false. Это может привести к различиям, когда boolean2 содержит выражения с побочными эффектами.

! boolean       True если boolean есть  false. 

Например, следующая программа печатает 

все записи входного файла `BBS-list' которые не содержат
цепочки  `foo':

awk '- if (! ($0 ~ /foo/)) print ""' BBS-list

Операторы `&&' и `----' называются операторами короткой схемы выполнения (short-circuit operators) из-за вида их работы. Вычисление полного выражения прерывается, если результат может быть определен на полпути их вычисления.

Можно продолжить оператор, который использует `&&' or `----', просто поместив newline после него. Но нельзя помещать newline перед любым из этих операторов, не используя продолжения обратным слешем (см. раздел 2.6 [awk-операторы против строк], стр. 17).

Фактически значение выражения, содержащего оператор `!', будет или единица или ноль, в зависимости от значения, к которому он применен. Оператор `!' часто полезен для изменения смысла переменной-флажка с false на true, и наоборот. Например, следующая программа дает один способ печатать строки между специальными ограничивающими строками:

$1 == "START" - interested = ! interested "" interested == 1 -&
 print "" $1 == "END" - interested = ! interested ""

Переменная interested, подобно всем переменным в awk, в начале инициализируется нулем, который также есть false. Когда появляется строка с первым полем `START', значение ее перекидывается в true, используя `!'. Следующее правило печатает строки, пока interested есть true. Когда появляется строка с первым полем `END', interested переключается опять на false.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru