Bash (sh) Scripts
- Use shellcheck to lint
Bash Template
Use the following options for safer bash scripts:
set -Eeuo pipefail
Explanation:
set -o errtrace # Functions, substitutions & sub-shells inherit traps
set -o errexit # Stops script if any command fail
set -o nounset # Error when using unset variables
set -o pipefail # Error when a command in a pipeline fails
The xtrace
option is also useful for debugging:
set -x
set -o xtrace # Print each executed command