To terminate the script in case of an error, we can use the “-e” option.
#!/bin/bash
set -e
or
#!/bin/bash -e
When a bash script is
- “sourced”,
- called from an alias with a leading dot like
my-alias='. /
my-script to execute in the same process, or - a function is executed from a terminal window
and the script exits on an error, it closes the terminal window.
To keep the terminal open, execute the script in a subprocess. It is easy to update existing scripts. Enclose the main part of the script in parentheses to open a new subprocess and add the “set -e” option to it. In case of an error the script terminates the subprocess and returns to the terminal session.
#!/bin/bash
my_function() {
...
}
(
set -e
...
my entry point to the script
...
)