A binary comparison operator compares two variables or quantities. Note that integer and string comparison
use a different set of operators.
integer comparison
-eq
is equal to
if [ "$a" -eq "$b" ]
-ne
is not equal to
if [ "$a" -ne "$b" ]
-gt
is greater than
if [ "$a" -gt "$b" ]
-ge
is greater than or equal to
if [ "$a" -ge "$b" ]
-lt
is less than
if [ "$a" -lt "$b" ]
-le
is less than or equal to
if [ "$a" -le "$b" ]
<
is less than (within double parentheses)
(("$a" < "$b"))
<=
is less than or equal to (within double parentheses)
(("$a" <= "$b"))
>
is greater than (within double parentheses)
(("$a" > "$b"))
>=
is greater than or equal to (within double parentheses)
(("$a" >= "$b"))
string comparison
=
is equal to
if [ "$a" = "$b" ]
==
is equal to
if [ "$a" == "$b" ]
!=
is not equal to
if [ "$a" != "$b" ]
This operator uses pattern matching within a [[ ... ]] construct.
<
is less than, in ASCII alphabetical order
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
Note that the "<" needs to be escaped within a [ ] construct.
>
is greater than, in ASCII alphabetical order
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
Note that the ">" needs to be escaped within a [ ] construct.
in conclusion (using bash or ksh shells) :-
you are testing 2 numerical variables (numbers) you have to use the first kind of operators (-eq) not the string operator
you can use the string operator in double parentheses ( [[..]] )
so use [[ "$rcInPAudit" = "$rcInP" ]] or [ "$rcInPAudit" -eq "$rcInP" ] to eliminate the error.
BR
Cannot figure out what the error is on line #10
I was trying to change my login prompt though I've success with that this shows up as well.
Here's what I have (1 Reply)
Hi,
echo $i
until ||
do
read NUM
if && ; then
printf "$FBOLD\nInvalid number, please enter valid backup number: $FREG"
fi
done
Getting below error :
./import_location.sh: line 234: [: : integer expression expected
./import_location.sh: line 234: [: :... (5 Replies)
CA_RELEASE has a value of 6. I need to check if that this is a numeric value. if not error.
source $CA_VERSION_DATA
if * ]
then
echo "CA_RELESE $CA_RELEASE is invalid"
exit -1
fi
+ source /etc/ncgl/ca_version_data
++ CA_PRODUCT_ID=samxts
++ CA_RELEASE=6
++ CA_WEEK_NO=7
++... (3 Replies)
Ok, so I am beggining a script to factor the time difference from when a user logs on to current time but before I can even get too far I am getting the INTEGER EXPRESSION EXPECTED error. Can someone tell me what I am doing wrong?
lhour=$(who | grep "$1" | cut -c30,31);
lmin=$(who | grep "$1"... (1 Reply)
Newb here
echo "$yesterdaysclose"
echo "$close"
if ; then
echo "stocks moving up"
elif ; then
echo "stock is moving down"
else
echo "no change"
fi
seems to evaluate the floating decimal correctly however returns
./shellscript1.sh: line 17: [: : integer expression expected... (3 Replies)
hi Guys,
when i run the below script its showing error "integer expression expected"
script pasted below:
#!/bin/sh
for i in {1..$2}
do
if
then
scp server1:/root/file.2012-$1-0$i .
else
scp server1:/root/file.2012-$1-$i .
fi
done (8 Replies)
Hi,
I have placed the script and running successfully on AIX
However in Linux it throws integer expression expected
Could some one please help me to fix this
MaxThreshold4alert=`echo "$MaxCapacitycnt*(80/100)" |bc -l`
echo $MaxThreshold4alert
Error:
40.00000000000000000000: integer... (2 Replies)
Hi,
I am getting the below error while comparing the month of a file to current month.
I am using ls -lrth to get the month of that file and while using the if else condition i am getting the below error..
a1=`ls -lrth abc.txt | awk '{print substr($6,1,3)}'`
This gives me the month from... (1 Reply)
Hello ,
This is the piece of the code which is giving me trouble
if ;then
exit_proc "${SOURCEDIR}/${OUT_FILE} does not exists or not readable" 2
else
word_count=`wc -l < ${SOURCEDIR}/$OUT_FILE`
fi
if ;then
exit_proc "Word_count is more than allowed limit" 1
else... (6 Replies)
Discussion started by: Sri3001
6 Replies
LEARN ABOUT ULTRIX
test
test(1) General Commands Manual test(1)Name
test - test conditional expression
Syntax
test expr
[ expr ]
Description
The command evaluates the expression expr. If the value of expr is true, the command returns a zero exit status; otherwise, it returns a
nonzero exit status. The command also returns a nonzero exit status if no arguments are specified.
Options
The following primitives are used to construct expr:
-r file Tests if the file exists and is readable.
-w file Tests if the file exists and is writable.
-f file Tests if the file exists and is not a directory.
-d file Tests if the file exists and is a directory.
-s file Tests if the file exists and has a size greater than zero.
-t [ fildes ] Tests if the open file, whose file descriptor number is fildes (1 by default), is associated with a terminal device.
-z s1 Tests if the length of string s1 is zero.
-n s1 Tests if the length of the string s1 is nonzero.
s1 = s2 Tests if the strings s1 and s2 are equal.
s1 != s2 Tests if the strings s1 and s2 are not equal.
s1 Tests if s1 is not the null string.
n1 -eq n2 Tests if number1 equals number2.
n1 -ge n2 Tests if number1 is greater than or equal to number2.
n1 -gt n2 Tests if number1 is greater than number2.
n1 -le n2 Tests if number1 is less than or equal to number2.
n1 -lt n2 Tests if number1 is less than number2.
n1 -ne n2 Tests if number1 is not equal to number2.
These primitives can be combined with the following operators:
!expr Negates evaluation of expression.
expr -a expr Tests logical and of two expressions.
expr -o expr Tests logical or of two expressions.
( expr... ) Groups expressions.
The -a operator takes precedence over the -o operator. Note that all the operators and flags are separate arguments to Note also that
parentheses are meaningful to the Shell and must be escaped.
See Alsofind(1), sh(1), test(1sh5)test(1)