7.4.1 The if
-else
Statement
The if
-else
statement is awk
’s decision-making
statement. It looks like this:
| if (condition) then-body [else else-body]
|
The condition is an expression that controls what the rest of the
statement does. If the condition is true, then-body is
executed; otherwise, else-body is executed.
The else
part of the statement is
optional. The condition is considered false if its value is zero or
the null string; otherwise, the condition is true.
Refer to the following:
| if (x % 2 == 0)
print "x is even"
else
print "x is odd"
|
In this example, if the expression ‘x % 2 == 0’ is true (that is,
if the value of x
is evenly divisible by two), then the first
print
statement is executed; otherwise, the second print
statement is executed.
If the else
keyword appears on the same line as then-body and
then-body is not a compound statement (i.e., not surrounded by
curly braces), then a semicolon must separate then-body from
the else
.
To illustrate this, the previous example can be rewritten as:
| if (x % 2 == 0) print "x is even"; else
print "x is odd"
|
If the ‘;’ is left out, awk
can’t interpret the statement and
it produces a syntax error. Don’t actually write programs this way,
because a human reader might fail to see the else
if it is not
the first thing on its line.