mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-04-19 08:26:39 +00:00
68 lines
1.1 KiB
Markdown
68 lines
1.1 KiB
Markdown
---
|
|
title: shfmt
|
|
homepage: https://github.com/mvdan/sh
|
|
tagline: |
|
|
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:
|
|
|
|
```text
|
|
~/.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:
|
|
|
|
```text
|
|
-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
|
|
|
|
```sh
|
|
shfmt -l -w <filepath>
|
|
```
|
|
|
|
To show differences between shfmt formatting and original file formatting
|
|
|
|
```sh
|
|
shfmt -d <filepath>
|
|
```
|
|
|
|
See https://github.com/mvdan/sh for more info.
|