-n
instead of
! -z
.(or "Use -z
instead of ! -n
")
if [ ! -n "$JAVA_HOME" ]; then echo "JAVA_HOME not specified"; fi
if [ ! -z "$STY" ]; then echo "You are already running screen"; fi
if [ -z "$JAVA_HOME" ]; then echo "JAVA_HOME not specified"; fi
if [ -n "$STY" ]; then echo "You are already running screen"; fi
You have negated test -z
or test -n
,
resulting in a needless double-negative. You can just use the other
operator instead:
# Identical tests to verify that a value is assigned
[ ! -z foo ] # Not has no value
[ -n foo ] # Has value
# Identical tests to verify that a value is empty
[ ! -n foo ] # Not is non-empty
[ -z foo ] # Is empty
This is a stylistic issue that does not affect correctness. If you prefer the original expression, you can Ignore it with a directive or flag.
[ ! -z $var ]
might work, but
[ -n $var]
will not. [ -n "$var" ]
will do
what you expect.ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.