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