Returning values from functions

Whenever we have statements that are printed on the screen within the function, we can see their result. However, lots of times we will want the function to populate a variable within the script and not display anything. In this case, we use return in the function. This is especially important when we are gaining input from users. We may prefer the case to translate the input to a known case to make the condition testing easier. Embedding the code in a function allows it to be used many times within a script.

The following code shows how we can achieve this by creating theĀ to_lower function:

to_lower () 
{ 
    input="$1" 
    output=$( echo $input | tr [A-Z] [a-z]) 
return $output 
} 

Stepping through the code, we can begin to understand the operation of this function:

One use of this function will be within a script that reads the user's input and simplifies the test to see whether they choose Q or q. This can be seen in the following extract of code:

to_lower () 
{ 
    input="$1" 
    output=$( echo $input | tr [A-Z] [a-z]) 
return $output 
} 
 
while true 
do 
  read -p "Enter c to continue or q to exit: " 
  $REPLY=$(to_lower "$REPLY") 
  if [ $REPLY = "q" ] ; then 
    break 
  fi 
 
done 
echo "Finished"