In BASH you can use the
Causes a function to exit with the return value specified by n. If n
is omitted, the return status is that of the last command executed in
the function body. If 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 either n or the exit status of the last
command executed within the script as the exit status of the script.
If used outside a function and not during execution of a script by .,
the return status is false. Any command associated with the RETURN trap
is executed before execution resumes after the function or script.
For other shells it might work differently of course.
If you can possibly rewrite the main script as a loop, you could use the
break statement based on the outcome of the loop command.