Standard_in error

# echo '6.5 < 2.7 ' |bc
0
# echo '4.8.5 > 4.8.4' |bc
(standard_in) 1: syntax error
(standard_in) 1: syntax error

----------------------------------------------------------

FILESET_A_VER_CHK2=4.8.5
FILESET_R_NAME_CHK2=4.8.5

if [[ `echo "$FILESET_A_VER_CHK2 > $FILESET_R_NAME_CHK2" |bc` -eq 1 ]] ; then
##      echo "Fileset is higher "
      STATUS="VALID"
      CHK1=N
   else
      if [[ `echo "$FILESET_A_VER_CHK2 < $FILESET_R_NAME_CHK2" |bc` -eq 1 ]] ; then
##         echo "Fileset is lower "
          STATUS="INVALID"
          CHK1=N
       else
          CHK2=N
      fi
    fi

--------------------------

+ FILESET_A_VER_CHK2=4.8.5
+ FILESET_R_NAME_CHK2=4.8.5
++ echo '4.8.5 > 4.8.5'
++ bc
(standard_in) 1: syntax error
(standard_in) 1: syntax error
+ [[ '' -eq 1 ]]
++ echo '4.8.5 < 4.8.5'
++ bc
(standard_in) 1: syntax error
(standard_in) 1: syntax error
+ [[ '' -eq 1 ]]
+ CHK2=N

This is not a clear question, just bc syntax errors. bc gives kind of ancient looking errors back from tty days.

4.8.5 is not a number - not floating point, not an integer.

That series of numbers has to be compared as a string:

$ a=1.2.3
$ b=1.2.3.0
$ [ "$a" = "$b" ]  || echo 'not equal'
not equal
$ b="1.2.3"
$ [ "$a" = "$b" ] && echo 'equal'
equal
##

function ver_comp
{
   cat - | awk ' {
     c1=split($1,a,".");
     m=c1
     c2=split($2,b,".");
     (c2 > m) ? (m=c2): 0;
     for (i=1; i<=m; i++) v1=v1 sprintf("%05s", a);
     for (i=1; i<=m; i++) v2=v2 sprintf("%05s", b);

     if  (v1 == v2) r="=";
     if  (v1 > v2) r=">";
     if  (v1 < v2) r="<";
     print r;
   }'
}

FILESET_A_VER_CHK2=4.8.6
FILESET_R_NAME_CHK2=4.8.6

cmp=`echo "$FILESET_A_VER_CHK2" "$FILESET_R_NAME_CHK2"|ver_comp`

echo "$FILESET_A_VER_CHK2 $cmp $FILESET_R_NAME_CHK2"