-
Notifications
You must be signed in to change notification settings - Fork 1.9k
SC2170
Joachim Ansorg edited this page Nov 12, 2021
·
4 revisions
read -r n
if [ n -lt 0 ]
then
echo "bad input"
fi
if [ "$USER" -eq root ]
then
echo "You are root"
firead -r n
if [ "$n" -lt 0 ] # Numerical comparison
then
echo "bad input"
fi
if [ "$USER" = root ] # String comparison
then
echo "You are root"
fiYou are comparing a string value with a numerical operator, such as -eq, -ne, -lt or -gt. These only work for numbers.
If you want to compare the value as a string, switch to the equivalent string operator: =, != \< or \>.
If you want to compare it as a number, such as n=42; while [ n -gt 1024/8 ]; .., then keep the operator and expand the operands yourself with $var or $((expr)): while [ "$n" -gt $((1024/8)) ]
None.