
return Command in Linux
The return command in Linux is a fundamental element in shell scripting that helps you exit from a shell function. It allows the script to pass control back to the caller, optionally providing an exit status. This capability is crucial for writing efficient, modular, and maintainable shell scripts.
Table of Contents
Here is a comprehensive guide to the options available with the return command −
- Syntax of return Command
- Parameters and Usage of return Command
- Examples of return Command in Linux
- Troubleshooting Common Issues of return Command
Syntax of return Command
The basic syntax of the return command is straightforward −
return [N]
Here, N is an optional parameter. If provided, it specifies the exit status of the function. If not provided, the command returns the exit status of the last executed command within the function.
Parameters and Usage of return Command
Let's explore a few parameters and usage of the return command that are essential for effective shell scripting.
Exit Status Parameter N
The N parameter must be a numeric value. It indicates the exit status code that the function will return to the caller.
Without Parameter
If N is not specified, the return command will return the exit status of the last command that was executed in the function.
Examples of return Command in Linux
Let's dive into some practical examples to see how the return command is utilized in different scenarios −
- Adding Two Numbers
- Checking If a Given Number is Even or Odd
- Complex Function with Multiple Returns
Adding Two Numbers
This example demonstrates a simple function that adds two numbers and returns the result.
#!/bin/bash add_numbers() { local sum=$(( $1 + $2 )) return $sum } add_numbers 5 7 result=$? echo "Sum: $result"
Here, the function add_numbers takes two parameters, calculates their sum, and returns it. The result is accessed using $?

Checking If a Given Number is Even or Odd
This example demonstrates a simple function that checks if a given number is even or odd.
#!/bin/bash check_even_odd() { if [ $(( $1 % 2 )) -eq 0 ]; then echo "$1 is even." return 0 else echo "$1 is odd." return 1 fi } check_even_odd 4 echo "Exit status: $?" check_even_odd 5 echo "Exit status: $?"
Here, the function check_even_odd returns 0 if the number is even and 1 if it's odd. The exit status is then printed.

Complex Function with Multiple Returns
A more complex function that performs a series of checks and returns different statuses −
#!/bin/bash check_input() { if [ -z "$1" ]; then echo "No input provided." return 1 elif [[ "$1" =~ [^0-9] ]]; then echo "Input is not a number." return 2 else echo "Valid input: $1" return 0 fi } check_input "" echo "Exit status: $?" check_input "abc" echo "Exit status: $?" check_input "123" echo "Exit status: $?"
This function checks if the input is empty, a non-numeric string, or a valid number, and returns different status codes accordingly.

Troubleshooting Common Issues of return Command
Here are some common issues you might encounter while using the return command and their solutions −
Non-Numeric Exit Status
Solution − Ensure that the N parameter is always numeric.
return "string" # Incorrect return 1 # Correct
Unintended Exit Status
Solution − Double-check that the correct command's status is being returned, and avoid unwanted side effects.
some_command # Ensure this command's status is what you want to return return $?
Conclusion
The command return is a versatile tool in shell scripting, enabling functions to return control and status to their callers. By understanding and mastering the return command, you can create more robust scripts that handle errors gracefully and execute tasks in a controlled manner.
Whether you're working on simple scripts or complex automation tasks, mastering the return command will greatly enhance your scripting skills.