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 May 21, 2017
·
1 revision
This expression is constant. Did you forget a $ somewhere?
Problematic code:
if [ "myvar" ]
thenecho"myvar is set"fi
Correct code:
if [ "$myvar" ]
thenecho"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)