return [ n ]
       Causes a shell function or `.' script to return to the invoking
       script with the return status specified by an arithmetic
       expression n.  For example, the following prints `42':

              () { integer foo=40; return "foo + 2" }
              echo $?

       If n is omitted, the return status is that of the last command
       executed.

       If return was executed from a trap in a TRAPNAL function, the
       effect is different for zero and non-zero return status.  With
       zero status (or after an implicit return at the end of the trap),
       the shell will return to whatever it was previously processing;
       with a non-zero status, the shell will behave as interrupted
       except that the return status of the trap is retained.  Note that
       the numeric value of the signal which caused the trap is passed as
       the first argument, so the statement `return "128+$1"' will return
       the same status as if the signal had not been trapped.
