A *function* is a name for a particular calculation. Because it has
a name, you can ask for it by name at any point in the program. For
example, the function `sqrt`

computes the square root of a number.

A fixed set of functions are *built-in*, which means they are
available in every `awk`

program. The `sqrt`

function is one
of these. See section Built-in Functions, for a list of built-in
functions and their descriptions. In addition, you can define your own
functions for use in your program.
See section User-defined Functions, for how to do this.

The way to use a function is with a *function call* expression,
which consists of the function name followed immediately by a list of
*arguments* in parentheses. The arguments are expressions which
provide the raw materials for the function's calculations.
When there is more than one argument, they are separated by commas. If
there are no arguments, write just ``()'` after the function name.
Here are some examples:

sqrt(x^2 + y^2)one argumentatan2(y, x)two argumentsrand()no arguments

**Do not put any space between the function name and the
open-parenthesis!** A user-defined function name looks just like the name of
a variable, and space would make the expression look like concatenation
of a variable with an expression inside parentheses. Space before the
parenthesis is harmless with built-in functions, but it is best not to get
into the habit of using space to avoid mistakes with user-defined
functions.

Each function expects a particular number of arguments. For example, the
`sqrt`

function must be called with a single argument, the number
to take the square root of:

sqrt(argument)

Some of the built-in functions allow you to omit the final argument. If you do so, they use a reasonable default. See section Built-in Functions, for full details. If arguments are omitted in calls to user-defined functions, then those arguments are treated as local variables, initialized to the empty string (see section User-defined Functions).

Like every other expression, the function call has a value, which is
computed by the function based on the arguments you give it. In this
example, the value of ``sqrt( argument)'` is the square root of

Here is a command to read numbers, one number per line, and print the square root of each one:

$ awk '{ print "The square root of", $1, "is", sqrt($1) }' 1 -| The square root of 1 is 1 3 -| The square root of 3 is 1.73205 5 -| The square root of 5 is 2.23607Control-d

Go to the first, previous, next, last section, table of contents.