Strange Number comparison issue


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Strange Number comparison issue
# 1  
Old 04-09-2007
Strange Number comparison issue

Hi,
I am comparing two numbers, but it gives strange results:
My Code:
if [ ${STARTTIME} -gt ${DATE_TIME} ]
then
echo "True"
else
echo "False"
fi

This code gives False for the follwoing comparison
[ 20040109195224 -gt 20070409200951 ]

where as True for the following:
[ 20050109195224 -gt 20070409201317 ]

Any reason for this? Both Should have given False...

I am using ksh shell on HP UX

Please help me
Shihab
# 2  
Old 04-09-2007
The numbers are too large for a -gt or -lt type comparison.

Try it with a numerical comparison:

Code:
if (( STARTTIME > DATE_TIME )) ; then
...
fi

or
Code:
if (( $STARTTIME > $DATE_TIME )) ; then
...
fi


*note in numerical comparison the "$" on the variables can be either ommitted or used
# 3  
Old 04-09-2007
Sorry it is not working :-(
# 4  
Old 04-09-2007
Quote:
Originally Posted by shihabvk
Sorry it is not working :-(
**shrug** It works fine for me, but since you gave no indication of any behaviour or error there is noting I can do.
# 5  
Old 04-09-2007
Code:
perl -e 'if ( 20040109195224 < 20070409200951 ) { print "yes\n" }'

# 6  
Old 04-09-2007
Quote:
Originally Posted by reborg
**shrug** It works fine for me, but since you gave no indication of any behaviour or error there is noting I can do.
Yes,

As pointed, it would work,

here is a sample that I tried in zsh

Code:
if [ 20040109195224 -lt 20070409200951 ]
then
echo "yes"
else
echo "no"
fi
yes

Should work in ksh too ! Smilie
# 7  
Old 04-09-2007
See My code :
#!/bin/ksh
STARTTIME=20050109195224
DATE_TIME=20070409201317
if (( STARTTIME > DATE_TIME )) ; then
echo "No"
else
echo "Yes"
fi

STARTTIME=20060109195224
DATE_TIME=20070409201317
if (( STARTTIME > DATE_TIME )) ; then
echo "No"
else
echo "Yes"
fi

Gives No for first if and Yes for the second one

As I mentioned using KSH on HP-UX
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Strange Issue with sendmail

more works.sh #!/bin/ksh { print "From: reportgenerator@myserver.com" print "To: randomguy@myfirm.com" print "MIME-Version: 1.0" print "Content-Type: text/html" print "Subject: Disk Report" print "<body>" print "<table border=1>" ... (3 Replies)
Discussion started by: mohtashims
3 Replies

2. Shell Programming and Scripting

Negative number comparison using nawk on Linux

Hi All, I am trying to compare two negative numbers using awk on linux.But it is giving me wrong result.Same code is working perfectly on solaris. print ((0+new_price) < MIN_PRICE) e.g If I try to compare -1.32(new_price) and -500(min_price) using "<" operator, output is 1 i.e true. ... (5 Replies)
Discussion started by: Rashmee
5 Replies

3. Shell Programming and Scripting

Issue with files comparison, help me with a logic

Can someone please help me with a unix logic for below. I tried to get the desired output by using change capture condition in Datastage but its not working properly. i have two files file1, file2 as below. file1 ROW_NO VEND_NO CODE AIR_D OCEAN_D ---------------------------------------- 1 ... (3 Replies)
Discussion started by: JSKOBS
3 Replies

4. Shell Programming and Scripting

comparison of number in linux..

hi all experts, i=1; while do echo $i $i=$i+1 done can I use min=2 max=5 if (($min > $ max)) then else (2 Replies)
Discussion started by: hamnsan
2 Replies

5. Shell Programming and Scripting

Strange variable comparison result in awk

So, I'm making a little awk script that generates a range-based histogram of a set of numbers. I've stumbled onto a strange thing. Toward the end of the process, I have this test: if ( bindex < s ) "bindex" is the "index" of my "bin" (the array element that gets incremented whenever a... (2 Replies)
Discussion started by: treesloth
2 Replies

6. Shell Programming and Scripting

Stupid issue with number comparison

Hello all, I'm having an infuriating issue with number comparison. Basically I've written a script that runs in cygwin that SSH's to 4 servers, figures out a success percentage and if it is less than a certain point, triggers an alarm. I've managed to get it to connect to the servers, figure out... (5 Replies)
Discussion started by: DeCoTwc
5 Replies

7. Web Development

Strange Mysql issue

Hi all, I recently changed the name of my hostname from 'abc123' to 'abc456' (as an example). I then added a user in my mysql database with the new host and removed references to the old users and hostname. The strange thing is though, a process using the database still uses the old... (1 Reply)
Discussion started by: muay_tb
1 Replies

8. Shell Programming and Scripting

Issue with String Comparison (if)

Hi, I was trying to do a string comparison using if. However, the comparison result is getting treated as a executable statement. I'm not sure where I'm making the mistake! $ typeset TEST_VAR='YUP' $ if ; then echo 'Got It!'; fi; ksh: : not found. Any help is appreciated! (3 Replies)
Discussion started by: waterdrop
3 Replies

9. UNIX for Dummies Questions & Answers

Strange issue

I have created a server monitor program in Java that connects to servers via SSH and constantly refreshes the new server load every 3 mins. The problem is that even though it is a Java app running shell commands to get the load info, the commands still appear in 'history'. The question is.. is... (1 Reply)
Discussion started by: AndrewSH
1 Replies

10. Cybersecurity

root Password ... strange issue

hi there , :cool: um facing a problem with my root passwd i want to set my root password and when i do i get the following :: # # passwd passwd: Changing password for root New Password: Re-enter new Password: passwd(SYSTEM): They don't match. Please try again New Password:... (6 Replies)
Discussion started by: badrali
6 Replies
Login or Register to Ask a Question