Functions and Return Values
Defines and uses Bash functions with local variables, return values, argument passing, and recursive calls for modular and reusable script logic.
Code
#!/usr/bin/env bash
set -euo pipefail
# Basic function
greet() {
local name="${1:-World}"
echo "Hello, $name!"
}
# Function returning a value via stdout
calculate_area() {
local width=$1
local height=$2
echo $(( width * height ))
}
# Function with return status
is_even() {
local num=$1
(( num % 2 == 0 ))
}
# Recursive function: factorial
factorial() {
local n=$1
if (( n <= 1 )); then
echo 1
else
local prev
prev=$(factorial $(( n - 1 )))
echo $(( n * prev ))
fi
}
# Main execution
greet "Alice"
greet
area=$(calculate_area 5 10)
echo "Area: $area"
if is_even 42; then
echo "42 is even"
fi
fact=$(factorial 5)
echo "5! = $fact"Report a problem with this exampleOpens a pre-filled issue on GitHub.