Created SC2078 (markdown)

koalaman
2017-05-21 10:44:21 -07:00
parent 74417f708e
commit 7afa63dc33

35
SC2078.md Normal file

@@ -0,0 +1,35 @@
## This expression is constant. Did you forget a `$` somewhere?
### Problematic code:
```sh
if [ "myvar" ]
then
echo "myvar is set"
fi
```
### Correct code:
```sh
if [ "$myvar" ]
then
echo "myvar is set"
fi
```
### Rationale:
ShellCheck has found a `[ .. ]` or `[[ .. ]]` statement that just contains a literal string. Such a check does not do anything useful, and will always be true (or always false, for empty strings).
This is usually due to missing `$` or bad quoting:
if [[ STY ] # always true
if [[ $STY ]] # checks variable $STY
if [[ 'grep foo bar' ]] # always true
if [[ `grep foo bar` ]] # checks grep output (poorly)
if grep -q foo bar # checks for grep match (preferred)
### Exceptions:
None