Este não é o comportamento que vejo com bash
. Nem é o que está documentado na minha versão (4.4.12).
$ cat <<'x' >x.sh
echo "This is x.sh"
return 0
x
$ source x.sh
This is x.sh
$
A página man escreve sobre o verbo return
:
return [n]
- [...] Ifreturn
is used outside a function, but during execution of a script by the.
(source
) command, it causes the shell to stop executing that script and return eithern
or the exit status of the last command executed within the script as the exit status of the script.