[ 0 ]
is true. Use
false
instead.if [ 0 ]
then
echo "always triggers"
fi
if false
then
echo "never triggers"
fi
[ str ]
checks whether str
is non-empty. It
doesn't matter if str
is 0
, it will still be
evaluated for non-emptyness.
Instead, use the command false
which -- as the manual
puts it -- does nothing, unsuccessfully.
None
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.