Created SC2292 (markdown)

Vidar Holen
2021-07-27 19:46:25 -07:00
parent c7be0d3e5e
commit 94049681aa

31
SC2292.md Normal file

@@ -0,0 +1,31 @@
## Prefer [[ ]] over [ ] for tests in Bash/Ksh.
This is an [[optional]] suggestion. It must be explicitly enabled with a [[directive]] `enable=require-double-brackets` in a `# shellcheck` comment or `.shellcheckrc`
### Problematic code:
```sh
[ -e /etc/issue ]
```
### Correct code:
```sh
[[ -e /etc/issue ]]
```
### Rationale:
ShellCheck has been explicitly asked to warn about uses of `[ .. ]` in favor of the extended Bash/Ksh test `[[ .. ]]`.
`[[ .. ]]` suppresses word splitting and globbing, supports a wider variety of tests, and is generally safer and better defined than `[ .. ]`. For an in-depth list of differences, see the Related Resources.
### Exceptions:
This check is not enabled by default, and may have been turned on for your current project by someone who wants it enforced. You can still [[ignore]] it with a directive.
This suggestion does not trigger for Sh or Dash scripts, even when explicitly enabled, as these shells don't support `[[ .. ]]`.
### Related resources:
* BashFAQ 031: [What is the difference between test, \[ and \[\[ ?](https://mywiki.wooledge.org/BashFAQ/031)