Bash scripts¶
Tools¶
ShellCheck¶
- linter for Bash
- VSCode ShellCheck extension
Bash boilerplates¶
- Minimal boilerplate- ~80 lines
 
- b3bp- ~500 lines
 
set¶
set or unset values
#
# Do
set -o nounset
# Catch the error in case mysqldump fails (but gzip succeeds) in `mysqldump |gzip`
set -o pipefail
# Turn on traces, useful while debugging but commented out by default
# set -o xtrace
| -e | - Exit immediately if a command exits with a non-zero status | 
|
| -o <option_name> | --option-name |
| -o errexit | - exit on error
- Append "|| true"if you expect an error | |-o errtrace| - Exit on error inside any functions or sub-shells | |-o nounset| - no undefined vars
- Use ${VAR:-}to use an undefined var | |-u| reference a variable that hasn’t been previously defined? throw an error | |-x| all executed commands are printed to the terminal |
- cmd1 | cmd2 | cmd3
- if any of the commands fail, exit with an error
- 
pipeline to return the exit status of the last (rightmost) command to exit with a non-zero status¶
See bash page for more bash goodies
  
    
      Last update:
      2023-04-24