-
Notifications
You must be signed in to change notification settings - Fork 1.8k
SC2170
koalaman edited this page Oct 14, 2015
·
4 revisions
read -r n
if [ n -lt 0 ]
then
echo "bad input"
fi
read -r n
if [ "$n" -lt 0 ]
then
echo "bad input"
fi
You are comparing a string value with a numerical operator, such as -eq
, -ne
, -lt
or -gt
.
In [[ .. ]]
, this would automatically dereference the string, looking to see if there are variables by that name.
In [ .. ]
, which you are using, the string is just treated as an invalid number.
If you want to compare numbers, expand yourself (e.g. use $var
instead of var
). If you are trying to compare strings and not numbers, use =
, !=
\<
or \>
instead.
None.