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 will do. If 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, and true otherwise.
Here is an example:
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,
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
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
else
. To illustrate this, let's rewrite the previous example:
if (x % 2 == 0) print "x is even"; else print "x is odd"
If you forget the `;', awk
won't be able to interpret the
statement, and you will get a syntax error.
We would not actually write this example this way, because a human
reader might fail to see the else
if it were not the first thing
on its line.
Go to the first, previous, next, last section, table of contents.