What Is Function in Shell Scripting?


Scott Campbell

In shell scripting, a function is a reusable block of code that performs a specific task. It allows you to break down your script into smaller, more manageable parts, making your code more organized and easier to maintain. Functions can be called multiple times throughout the script, reducing the need for redundant code and improving readability.

Creating a Function

To create a function in shell scripting, you use the function keyword followed by the function name and a set of parentheses:

function_name() {
    # function body

The parentheses are used to pass arguments to the function if needed. However, they are optional if no arguments are required.

Calling a Function

To call a function in shell scripting, you simply use its name followed by parentheses:


If your function requires input arguments, you can pass them inside the parentheses:

function_name argument1 argument2 ..

Returning Values from a Function

In shell scripting, functions can return values using the return statement. The return statement is followed by an integer value that represents the exit status of the function. By convention, an exit status of 0 indicates success, while any non-zero value indicates failure or an error condition.

# Example: A function that returns the sum of two numbers
sum_numbers() {
    local num1=$1
    local num2=$2
    local sum=$((num1 + num2))
    return $sum

In the above example, the sum_numbers function takes two arguments, num1 and num2. It calculates their sum and stores it in the sum variable. Finally, it returns the value of sum.

Using Functions in Shell Scripts

To use functions in your shell scripts, you can simply call them at any point within your script. It is common practice to define functions at the beginning of your script, before they are called.

# Example: Calling the sum_numbers function and printing the result
sum_numbers 10 20
echo "The sum is: $result"

In this example, we call the sum_numbers function with arguments 10 and 20. The return value of the function is stored in the result variable using the special variable $?. Finally, we print the result.

Nested Functions

In shell scripting, you can also define functions inside other functions. These are called nested functions. Nested functions can only be called from within their parent function and cannot be accessed outside of it.

# Example: A parent function that calls a nested child function
parent_function() {
    echo "This is the parent function."
    child_function() {
        echo "This is the nested child function."
    # Call the nested child function

In this example, we define a parent function called parent_function. Inside it, we define a nested child function called child_function. The parent_function calls the child_function, and when executed, it will display both messages.


In shell scripting, functions play a vital role in breaking down complex tasks into smaller, manageable chunks of code. They enhance code reusability and improve overall script organization. By using functions effectively, you can make your shell scripts more readable and maintainable.

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy