I'm trying to do a script that is used with two arguments - a file and an integer. It should check if the arguments are valid, otherwise exit with 1. Then it should either return 0 if the file is smaller than second argument, or echo size of the file to stdout. The script keeps returning value 123 instead of 1 or 0. Where is the problem? Thanks.
#!/bin/bash
if [ $# -eq 2 ];
then
    if test $2 -eq $2  > /dev/null 2>&1
    then
        if [ -f $1 ];
        then
            if [ $(stat -c %s $1) -ge $2 ];
            then
                echo $(stat -c %s $1)
            else
                exit 0
            fi
        else
            exit 1
       fi
    else
        exit 1
    fi
else
    echo 042f9
    exit 1
fi
 
    