bash does not provide a return statement to return custom values from a function. The return statement is only used to return a numeric status code to the calling function which can be retrieved with $?. Long story made short, use a recent bash version (>= 4.3) and use the declare -n statement to declare a reference to the variable where the result will be stored, and pass the name of this variable as a parameter to the function:
#!/bin/bash someFunction() { declare -n __resultVar=$1 local someValue="Hello World" # The next statement assigns the value of the local variable to the variable # passed as parameter __resultVar=${someValue} } # call the function and pass the name of the result variable someFunction theResult echo ${theResult}