1
0
mirror of https://github.com/koalaman/shellcheck.git synced 2025-03-12 12:35:25 -07:00

Created Optional (markdown)

Vidar Holen 2021-07-27 19:24:40 -07:00
parent 0dca28a379
commit 80e8e1d8d7

68
Optional.md Normal file

@ -0,0 +1,68 @@
## Optional Checks
ShellCheck supports additional checks that are not enabled by default. These are generally subjective or stylistic.
### Enabling an optional check
Checks can be enabled with flags or an `enable` [[directive]] in the file or `.shellcheckrc`:
```
#!/bin/sh
# shellcheck enable=require-variable-braces
echo "$RANDOM" # Will emit a suggestion to use `${RANDOM}`
```
or put `enable=require-variable-braces` in a `.shellcheckrc` in your home directory or project root.
They can also be enabled on the command line with `shellcheck -o require-variable-braces myscript`
### Enabling all checks
It's a good idea to enable all warnings with `-Wall` in C, but this is not the case in ShellCheck. Optional checks are more subjective rather than more comprehensive, and may conflict with each other.
However, if you for debugging or evaluation purposes want to see what's available, you can enable them with `-o all` or `enable=all` as above.
### Available checks
To see which checks are available in your version of ShellCheck, use the `--list-optional` flag. This list is not necessarily up to date:
```
$ shellcheck --list-optional
name: add-default-case
desc: Suggest adding a default case in `case` statements
example: case $? in 0) echo 'Success';; esac
fix: case $? in 0) echo 'Success';; *) echo 'Fail' ;; esac
name: avoid-nullary-conditions
desc: Suggest explicitly using -n in `[ $var ]`
example: [ "$var" ]
fix: [ -n "$var" ]
name: check-unassigned-uppercase
desc: Warn when uppercase variables are unassigned
example: echo $VAR
fix: VAR=hello; echo $VAR
name: deprecate-which
desc: Suggest 'command -v' instead of 'which'
example: which javac
fix: command -v javac
name: quote-safe-variables
desc: Suggest quoting variables without metacharacters
example: var=hello; echo $var
fix: var=hello; echo "$var"
name: require-double-brackets
desc: Require [[ and warn about [ in Bash/Ksh
example: [ -e /etc/issue ]
fix: [[ -e /etc/issue ]]
name: require-variable-braces
desc: Suggest putting braces around all variable references
example: var=hello; echo $var
fix: var=hello; echo ${var}
```