$
somewhere?if [ "myvar" ]
then
echo "myvar is set"
fi
if [ "$myvar" ]
then
echo "myvar is set"
fi
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)
None
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.