shfmt: Format shell programs

To update or switch versions, run webi shfmt@stable or webi shfmt@beta, etc.

Files

These are the files / directories that are created and/or modified with this install:

~/.config/envman/PATH.env
~/.local/opt/shfmt/
~/.local/bin/shfmt

Cheat Sheet

shfmt is a shell parser, formatter and interpretter that supports POSIX Shell, Bash and mksh.

Usage: shfmt <flags> <filepath>

Note: If given path is directory, all shell scripts in the directory will be used.

Frequently used flags:

-version
    Show version and exit.

-l
    List files whose formatting differs from shfmt's.

-w
    Write result to file instead of stdout.

-d
    Error with a diff when the formatting differs.

-s
    Simplify the code.

-f
    Recursively find all shell files and print the paths.

Examples

To list files being formatted and write directly to file

shfmt -l -w <filepath>

To show differences between shfmt formatting and original file formatting

shfmt -d <filepath>

See https://github.com/mvdan/sh for more info.

Contribute

Report an Issue Submit Installer Star on GitHub