shfmt: Format shell programs

Install shfmt

Paste this into a Command or cmd.exe prompt.

curl.exe https://beta.webi.ms/shfmt | powershell

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