checking for non-zero value


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers checking for non-zero value
# 1  
Old 01-07-2008
Question checking for non-zero value

I have a process that spits out a file called sqlplus.out, here is what the result looks like:
Quote:
$ cat sqlplus.out

MAX_ID-LAST_ID
--------------
0
Currently the value you see is zero, what I need to do is perform an action if that value is non-zero, so how do I check that value in an if statement? If it helps at this moment in development the line with the value will always be on line 4.

Thanks for the help!
# 2  
Old 01-07-2008
if then for non-zero

You can do it simpler, but I am assuming that you might have several things to do when a non-zero is found.
This is looking for the last one line of the file; knowing that the value will be on that line.


x=$(tail -1 sqlplus.out)

echo $x
if [ $x -ne 0 ]
then
echo "You have found a non-zero value"
fi
# 3  
Old 01-07-2008
Quote:
Originally Posted by joeyg
You can do it simpler, but I am assuming that you might have several things to do when a non-zero is found.
This is looking for the last one line of the file; knowing that the value will be on that line.


x=$(tail -1 sqlplus.out)

echo $x
if [ $x -ne 0 ]
then
echo "You have found a non-zero value"
fi
Won't run in bourne, for a bourne-safe syntax, use back ticks:
Code:
if [ `tail -1 sqlplus.out` -ne 0 ] ; then echo "You have found a non-zero value" ; fi

# 4  
Old 01-08-2008
PHP

without the back ticks it didn't work, so thanks go to the Smiling Dragon for helping out and thanks joeyg for the attempt. However, it still doesn't work, I get the following as a result:
Code:
" near 0wn operator in arithmetic expression "0

There is no quotation mark present in the sqlplus.out file, though I decided to vi the file and found that there is a ^M character at the end of each line. I should let you know that this is a unix emulator on a windows server. Another thing to mention is that the result in the sqlplus.out file does not start at the first character, sqlplus right justifies the value with the field header - for whatever reason the unix.com forum interface put it to the left. Thanks again for the assistance!
# 5  
Old 01-08-2008
just a side note what DB are using to get the data out of?
I know if you use certain operaters in DB2 you can cut out all the unneeded stuff like column headers I.E.

Code:
db2 -x "select * from your.table"

If you can get your DB to cut out all the crap then all you will have to worrie about is comparing the values and you can throw out the "tail" command.

Just a thought.

Jim
# 6  
Old 01-08-2008
Quote:
Originally Posted by philplasma
without the back ticks it didn't work, so thanks go to the Smiling Dragon for helping out and thanks joeyg for the attempt. However, it still doesn't work, I get the following as a result:
Code:
" near 0wn operator in arithmetic expression "0

There is no quotation mark present in the sqlplus.out file, though I decided to vi the file and found that there is a ^M character at the end of each line. I should let you know that this is a unix emulator on a windows server. Another thing to mention is that the result in the sqlplus.out file does not start at the first character, sqlplus right justifies the value with the field header - for whatever reason the unix.com forum interface put it to the left. Thanks again for the assistance!
Ah, in that case, we can make the search for 0 on the last line a little more robust, the following will trigger if you get a non-zero exit code but will ignore any non-digit characters on the line. You could add a second grep for a 0 afterwards to confirm it's given an exit code at all but I've left that off in the example below:
Code:
if `tail -1 sqlplus.out | egrep '[1-9]'` ; then ...

# 7  
Old 01-08-2008
MySQL

Thanks!

While I am sure your solution works perfectly, I was able to work around the problem by changing my SQL that produces the difference between last id and max id and output 'true' if there is a difference. Now I just need to grep on true from the sqlplus.out file and that satisfies the condition.

As always unix.com delivers, in my case not a final solution, but helpful hints to get me there.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. SCO

Stop boot system at "Checking protected password and checking subsystem databases"

Hi, (i'm sorry for my english) I'm a problem on boot sco unix 5.0.5 open server. this stop at "Checking protected password and checking subsystem databases" (See this image ) I'm try this: 1) http://www.digipedia.pl/usenet/thread/50/37093/#post37094 2) SCO: SCO Unix - Server hangs... (9 Replies)
Discussion started by: buji
9 Replies

2. Shell Programming and Scripting

File checking

Hi I have 4 files, I need the check whether these 4 files are having header and Trailer records. header and trailer records are identified with 1,b. If any file is not having these we will not proceed with other process. Output should be 1 if all files are having header and footer other... (4 Replies)
Discussion started by: cnrj
4 Replies

3. Homework & Coursework Questions

Help With spell checking

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: What the program is suppose to do is input a word and when the user press enter the result should read the word... (6 Replies)
Discussion started by: mgyeah
6 Replies

4. Shell Programming and Scripting

Checking arguments

I shoe here the start of a csh script I have written. I am trying to write some code to check the arguments and if the arguments don't match the tags, I will abort and display an error. For example using ./script.csh -r=10/20.30/40 -xyz=2/3/4 will give an error as the -xyz tag doea not... (24 Replies)
Discussion started by: kristinu
24 Replies

5. UNIX for Dummies Questions & Answers

Checking for same file name

I was wondering if there is a way to to check if two files are the same. I've tried writing a script called samefile, which takes in two arguments (files) and attempts to compare them to see if they're the same file. Here is what I have so far: if then echo "The two files are not the... (4 Replies)
Discussion started by: Trinimini
4 Replies

6. UNIX for Dummies Questions & Answers

Checking for same file

I was wondering if there is a way to to check if two files are the same. I've tried writing a script called samefile, which takes in two arguments (files) and attempts to compare them to see if they're the same file. Here is what I have so far: if then echo "The two files are not the... (0 Replies)
Discussion started by: Trinimini
0 Replies

7. Shell Programming and Scripting

pattern checking

hi , i am having one file which is having the contents like this : "1111111111" "2222222222" "4444232344" ... i want to check if all the patterns in the file follows this sequence like starting with " ending with " inside that 10 digits... can anyone help me in checking that.. ... (5 Replies)
Discussion started by: kripssmart
5 Replies

8. Shell Programming and Scripting

checking uid

How do i go about getting the uid of the user and verify ? if then echo "You are not a superuser, please login as a superuser" exit1; fi the above code doesn't work. can some guru please help me. 1. how to get the uid of the user ? i know by typing id but how to... (7 Replies)
Discussion started by: filthymonk
7 Replies

9. UNIX for Dummies Questions & Answers

Checking cp progress

Hi gurus. I wonder if there is some command that will help me to determing the progress of cp. I'm copying huge amount of files, and through the ps x -uoracle see, that it goes 1771 pts/6 S+ 0:37 cp 1_2600_617913793.arc 37 minutes. Is there command, that helps determing on what... (0 Replies)
Discussion started by: MarGur
0 Replies
Login or Register to Ask a Question