http://www.unix.com/shell-programming-scripting/120511-if-clause-problem-err-integer-expression-expected.html
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.
Comparison operator in shell
最新推荐文章于 2024-09-12 22:54:45 发布