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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




Руководство пользователя для 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