# if

## Overview

The `if`

statement is used to conditionally execute one or more statements.

## Syntax

## Conditional Expressions

A conditional expression (hereafter referred to as simply an *expression*) is evaluated to provide a TRUE or FALSE result which in turn determines whether one or more statements are to be executed or not. The following are examples of a valid expression:

An expression used by the `if`

statement may contain:

Numeric and string literals

Regular expressions

Variables

Operators

Functions

### Numeric and string literals

A *literal* is a specified value, such as `4.5`

or `"hostname"`

. Literals may be numbers or strings (text).

If a literal is non-quoted then it will be treated as a number if it represents a valid decimal integer or floating point number (in either regular or scientific notation), else it will be treated as a string.

If a literal is quoted then it is *always* treated as a string, thus `3.1515926`

is a number and `"3.1415926"`

is a string.

### Regular expressions

Regular expressions must be enclosed within forwarding slashes (`/`

), and are assumed to be in ECMAScript format.

If present, a regular expression must be used on the right-hand side of either an `!~`

or an `=~`

operator, and when evaluated it will be applied to the value on the left-hand side of an operator, for example:

As the forward slash is used as a delimiter for the expression, any literal forward slashes required by the expression should be escaped with a backslash: `\/`

### Variables

Variables can be used within expressions, in which case they are replaced with their values. Once expanded, these values are treated as literals.

### Operators

Operators are evaluated according to the operator precedence rules in the table below (where the highest precedence is evaluated first), unless parentheses are used to override them. Operators with the same precedence are evaluated from left to right.

Precedence | Operator | Meaning | ||

1 |
| Unary negation | ||

2 |
| Multiplication | ||

2 |
| Division | ||

2 |
| Modulo | ||

3 |
| Addition | ||

3 |
| Subtraction | ||

4 |
| Less than | ||

4 |
| Less than or equal to | ||

4 |
| Greater than | ||

4 |
| Greater than or equal to | ||

5 |
| Is equal to | ||

5 |
| Is not equal to | ||

5 |
| Matches regular expression | ||

5 |
| Does not match regular expression | ||

6 |
| Boolean AND | ||

7 | ` | ` | Boolean OR |

Although expressions are evaluated based on the precedence of each operator as listed in the above table, it is recommended that parenthesis are used within the expression in order to remove any ambiguity on the part of a future reader.

Last updated