Early on, issue an `echo $#`
see whether the number of arguments is what you expect and follow it up with and `echo $2`
before assigning $2 to Table_owner
Add a wc -l and check for numeric equals thus:
if [ `echo $Table_owner |grep -F "/tmp/users.log" | wc -l` -ge 1 ]; then
echo "UserName Matches"
echo "UserName Mismatch"
Why the -F flag? I always thought that it forces an exact match for the full length of the field (25 in your case). So you should pad-right $2 with spaces to make 25 bytes.