Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Shellcheck Processor

Purpose

Lints shell scripts using shellcheck.

The Rust alternative is ishellcheck: ShellCheck’s analysis, in-process, with shellcheck’s codes, messages and positions. Switching is shellcheck → ishellcheck in the stanza header, and options in args become fields (args = ["-e", "SC1091"] → exclude = ["SC1091"]).

How It Works

Discovers .sh and .bash files in the project (excluding common build tool directories), runs shellcheck on each file, and records success in the cache. A non-zero exit code from shellcheck fails the product.

This processor supports batch mode, allowing multiple files to be checked in a single shellcheck invocation for better performance.

Source Files

  • Input: **/*.sh, **/*.bash
  • Output: none (linter)

Configuration

[processor.checker.shellcheck]
command = "shellcheck"                       # The shellcheck command to run
args = []                                    # Additional arguments to pass to shellcheck
dep_inputs = []                            # Additional files that trigger rebuilds when changed
KeyTypeDefaultDescription
commandstring"shellcheck"The shellcheck executable to run
argsstring[][]Extra arguments passed to shellcheck
dep_inputsstring[][]Extra files whose changes trigger rebuilds

Batch support

The tool accepts multiple files on the command line. When batching is enabled (default), rsconstruct passes all files in a single invocation for better performance.

Clean behavior

This processor is a Checker — rsconstruct clean outputs is a no-op for it (checkers produce no outputs). See Clean behavior and rsconstruct clean.