home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


.if

.if [! ]condition anything

If condition is true, do anything . The presence of an ! negates the condition. If anything runs over more than one line, it must be delimited by \{ and \} .

Conditions

o

True if the page number is odd.

e

True if the page number is even.

n

True if the processor is nroff .

t

True if the processor is troff .

" str1 " str2 "

True if str1 is identical to str2 . Often used to test the value of arguments passed to a macro.

expr

True if the value of expression expr is greater than zero.

Expressions

Expressions typically contain number register interpolations and can use any of the following operators:

+ -

Addition, subtraction

/ *

Multiplication, division

%

Modulo

< >

Less than, greater than

<= >=

Less than or equal, greater than or equal

= ==

Equal

!

Logical negation

&

Logical AND

:

Logical OR

Note: expressions are evaluated left to right; there is no operator precedence. Parentheses may be supplied to force a particular evaluation order.

Example

Inside a macro definition, set the spacing and print the second argument. (The extra backslashes are necessary in \\$2 . One backslash is stripped off when the macro is first read, so the second one is needed for it to be evaluated correctly when the macro is executed.)

.if t .nr PD 0.5v  \" Set spacing between ms paragraphs
.if !"\\$2"" \{ \" If arg 2 is non null, print it in bold
\fB\\$2\fP\}


Previous: Reference: .ie UNIX in a Nutshell: System V Edition Next: Reference: .ig
Reference: .ie Book Index Reference: .ig

The UNIX CD Bookshelf NavigationThe UNIX CD BookshelfUNIX Power ToolsUNIX in a NutshellLearning the vi Editorsed & awkLearning the Korn ShellLearning the UNIX Operating System