return - Linux
Overview
The return
command in shell scripting is used to exit the current function and optionally return a value to the calling environment. This command is primarily used within functions in shell scripts. It is useful for controlling the flow of execution and managing the output of functions.
Syntax
The syntax for the return
command is as follows:
return [n]
Where [n]
is an optional integer value. If provided, n
is used as the function’s exit status; if omitted, the exit status of the last command executed is used.
Options/Flags
The return
command does not have any options or flags. Its behavior is solely determined by the optional numeric argument:
- [n]: An integer exit status to return from the function (0 to 255). 0 typically indicates success, while any non-zero value indicates an error.
Examples
-
Basic Example:
A simple function that returns without specifying an exit status:function myfunc() { echo "Performing some operations" return } myfunc echo "Exit status: $?"
-
Returning Specific Exit Status:
Exiting a function with a specific status code:function check_value() { local val=$1 if [[ $val -eq 100 ]]; then echo "Value is 100" return 0 else echo "Value is not 100" return 1 fi } check_value 150 echo "Exit status: $?"
Common Issues
- Non-Numeric Arguments: Providing a non-numeric argument to
return
can result in unexpected behavior or syntax errors. - Using return outside a function:
return
can only be used within a function. Using it outside can lead to an error:return: can only 'return' from a function or sourced script
.
Integration
The return
command is often used in conjunction with conditional statements to control the flow based on external conditions. Here’s an example integrating with other commands:
function is_directory_empty() {
local dir=$1
if [ -z "$(ls -A $dir)" ]; then
echo "$dir is empty."
return 0
else
echo "$dir is not empty."
return 1
fi
}
if is_directory_empty /path/to/dir; then
echo "Doing tasks related to empty directory."
else
echo "Handling non-empty directory."
fi
Related Commands
exit
: Exits the entire script, not just a function.break
andcontinue
: Control loops but not function execution.
Further reading and official documentation can often be found in Bash or shell scripting manuals, such as the GNU Bash manual available online at GNU.org.