You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
koalaman edited this page Jul 13, 2017
·
1 revision
This expression is constant. Did you forget the $ on a variable?
Problematic code:
if [ myvar ="test" ]
thenecho"Test mode"fi
Correct code:
if [ "$myvar"="test" ]
thenecho"Test mode"fi
Rationale:
ShellCheck has found a [ .. ] or [[ .. ]] comparison that only involves literal strings. The intention was probably to check a variable or command output instead.
This is usually due to missing $ or bad quoting:
if [[ "myvar" = "test" ]] # always false because myvar is a literal string
if [[ "$myvar" = "test" ]] # correctly compares a variable
if [ 'grep -c foo bar' -ge 10 ] # always false because grep doesn't run
if [ "$(grep -c foo bar)" -ge 10 ] # correctly checks grep output