mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Created SC2292 (markdown)
31
SC2292.md
Normal file
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)
|
Reference in New Issue
Block a user