"To return values, you can set a global variable with the
result, or use command substitution, or you can pass in the name of
a variable to use as the result variable. The examples below
describe these different mechanisms.
"Although bash has a return statement, the only thing you can
specify with it is the function's status, which is a numeric value
like the value specified in an exit statement. The status value is
stored in the $? variable. If a function does not contain a return
statement, its status is set based on the status of the last
statement executed in the function. To actually return arbitrary
values to the caller you must use other mechanisms."