Skip to content

bash

Shell scripts, hooks, and task files: lint, formatting, syntax, and the structure rules for shell.

Check Stage Level What it does
bash/zsh-syntax commit recommended Checks the syntax of Zsh scripts with zsh -n.
bash/shellcheck commit recommended Runs ShellCheck over shell scripts and sourced files, with its stable optional rules at level all.
bash/shfmt commit recommended Checks that every shell script matches the shfmt output.
bash/script-layout commit all Checks each Bash script for a shebang, strict mode, a final main call when it defines functions, declarative libraries, and removed temporary files.
bash/doc-comments commit all Checks that each shell function has a comment above it that says more than its name.
bash/unused-functions commit recommended Finds shell functions no script in the scope calls.
bash/unread-arguments commit recommended Finds shell functions called with arguments they never read.
bash/function-size commit all Checks every shell function against the size ceilings: code lines, branches, nesting, and assignments.
bash/inline-scripts commit all Finds inline Python and Node code, and heredocs piped into an interpreter, in shell scripts.
bash/safety commit recommended Finds broad process kills and recursive deletes, except traps that remove mktemp paths. At level all, also reports discarded failures.

gspot selects it in a scope with file extensions .sh, .bash, .zsh, .bats, or script interpreters shell.

Rule file Installed when
.gspot/configurations/language/bash/rules/BASH.md Always
.gspot/configurations/language/bash/rules/LANGUAGE.md Always
.gspot/configurations/language/bash/rules/OPERATIONS.md Always
.gspot/configurations/language/bash/rules/SAFETY.md Always
Tool Version
shellcheck 0.11.0
shfmt 3.12.0
zsh Any, install it yourself

gspot writes .gspot/configurations/language/bash/shellcheckrc and .gspot/configurations/language/bash/semgrep.yml (with the security configuration).