I use "source" inside a bash script, as follows:
#!/bin/bash source someneatscriptthatendsprematurely.sh
I would like to exit from the someneatscriptthatendsprematurely.sh script, without exiting from the main script.
Any help appreciated!
You need the return
statement:
return [n]
Causes a function to exit with the return value specified by
n
. Ifn
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 eithern
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.
You can see this in action with the following two scripts:
script1.sh: . script2.sh echo hello again script2.sh: echo hello return echo goodbye
When you run script1.sh
, you see:
hello hello again
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With