Help needed with error handling


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help needed with error handling
# 1  
Old 02-15-2011
Help needed with error handling

I am writing a wrapper to one of the .ksh script. The wrapper script should capture the error/fatal(if any) and exit out of the script. Here is the script:
Code:
#!/bin/sh

. main_script.ksh <arg1> <arg2> > mainscript.log 2>&1 

cnt=`grep 'ERROR' -c mainscript.log`

if [ $cnt -ne 0 ]; then
  echo "Error"
  grep 'ERROR' mainscript.log > error.txt  #Write the error to a file
  exit 1
else
  echo "Success"
fi

The above script is not doing what it is supposed to do. It is not erroring out and also not writing anything to the error.txt
When i take the execution of the main_Script.ksh from the script, it works fine but not when i am executing the main_script.ksh.

Please let me know where am i going wrong.

Thanks in advance!!

Moderator's Comments:
Mod Comment Use code tags, please...

Last edited by Scott; 02-15-2011 at 02:57 PM..
# 2  
Old 02-15-2011
Try replacing:
Code:
cnt=`grep 'ERROR' -c mainscript.log`

by
Code:
cnt=`grep -c 'ERROR' mainscript.log`

# 3  
Old 02-15-2011
I did try doing it that way as well but it didnt work..Anyway i really appreciate for taking time to reply..I somehow fixed the issue and here it is:
Code:
#!/bin/sh
err_code=0;
main_script.ksh <arg1> <arg2> > mainscript.log 2>&1 
cnt=`grep 'ERROR' -c mainscript.log`
if [ $cnt -ne 0 ]; then
  echo "Error"
  grep 'ERROR' mainscript.log > error.txt;  #Write the error to a file
  err_code=1;
else
  echo "Success"
fi
if [ $err_code -ne 0 ]; then
  echo "Error"
  exit $err_code;
else
  echo "Success"
  exit $err_code;
fi


Thanks Again!!

Last edited by Franklin52; 02-15-2011 at 05:41 PM.. Reason: Please use code tags, thank you
# 4  
Old 02-15-2011
Nice you worked it out yourself, but it's still a little inefficient, your reading the whole file with grep to count the number of error lines and then re-reading it again to capture them.

Why not grep the error lines and redirect to error.txt and then test the size of error.txt with the -s option:

Code:
grep ERROR mainscript.log > error.txt
if [ -s error.txt ]; then
   echo Error
   ...
else
   rm error.txt
   echo Success
fi

# 5  
Old 02-15-2011
May be yes...I can do it that way. This looks like a better approach instead of grep'g multiple times...Thanks a lot !!
# 6  
Old 02-15-2011
Quote:
Originally Posted by Chubler_XL
Nice you worked it out yourself, but it's still a little inefficient, your reading the whole file with grep to count the number of error lines and then re-reading it again to capture them.

Why not grep the error lines and redirect to error.txt and then test the size of error.txt with the -s option:

Code:
grep ERROR mainscript.log > error.txt
if [ -s error.txt ]; then...

In an ongoing battle against inefficiency (die! Smilie), why not simply use grep's meaninful exit status directly?

Code:
 if grep ERROR mainscript.log > error.txt; then...

Regards,
Alister
# 7  
Old 02-16-2011
Thanks for all the suggestions...!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Error handling for file

Hi Guys, I got a csv with pipe delimted file and i want to check second column of the file has any alpha character becuase I am expecting only number in that, and if any alpha characters then it should throw an error Thanks in advance (1 Reply)
Discussion started by: Rizzu155
1 Replies

2. Shell Programming and Scripting

Error handling

Hello fellow UNIX gurus :) I have a problem regarding the script below: # Variables used in this shell. power=0 # Stores squared integer total=0 # Sum of all squared integers num=0 # Stores command line arguements # Provides error handling if command line... (5 Replies)
Discussion started by: Learn4Life
5 Replies

3. Shell Programming and Scripting

Error Handling

Below code works for different databases i.e. MYSQL and ORACLE The problem is for MYSQL in Block: if ; $? taking value accordingly but in case of ORACLE $? is always taking this value as zero (0). That is the reason in Oracle it always going in else Block in any case.. :( and in case of ... (4 Replies)
Discussion started by: ambarginni
4 Replies

4. Shell Programming and Scripting

PERL error handling

I have a PERL command line embedded in a UNIX script. The script doesn't handle errors coming out of this command. I'm processing large files and occassionally I run out of disk space and end up with half a file. perl -p -e 's/\n/\r\n/g' < TR_TMP_$4 > $4 How do I handle errors coming out... (1 Reply)
Discussion started by: OTChancy
1 Replies

5. Shell Programming and Scripting

Help with Error Handling on Script

Hi, I need your guys help again. I run a script which check for some process status in a loop. when i check the process some of the process could throw an error, how can i check that inside my script. Thanks, RR (3 Replies)
Discussion started by: rrb2009
3 Replies

6. Shell Programming and Scripting

Finger and error handling

I have this segment of code : cmd = "finger -m " $1 " 2>/dev/null | head -1" cmd | getline userinfo close(cmd) Sometimes finger returns no such user when given a user id. With the redirection to the default trash file i am getting rid of any screen "finger:no such user" messages. I also want... (2 Replies)
Discussion started by: beatblaster666
2 Replies

7. Shell Programming and Scripting

Error Handling

Helo Experts, I need a help in handling errors in shell script, wants my errors displayed in text file instead of command window.. My shell script is here; cd /cygdrive/s/Files for FILES in ./*.* do temp=`basename $FILES` if cp $FILES /cygdrive/r/CopyFile1/$FILES; then echo "copy... (5 Replies)
Discussion started by: CelvinSaran
5 Replies

8. Shell Programming and Scripting

SFTP Error Handling

Hi , Can any one tell me is there any standard method to track errors during sftp ? using which command i can track sftp errors ? i tried using echo $? . Most of the times i am getting error number 127 ,1, 255. whether it is constant numbers ? Please help me out. Thanks in advance (2 Replies)
Discussion started by: deepusunil
2 Replies

9. Shell Programming and Scripting

Help needed in switch case handling in UNIX

Hi, In below code, i am expecting the output has Bye Bye But i am getting has Bye Hi Code: #!/usr/bin/bash var="Hi" cat txt.txt | while read var1 do next="Bye" case $var in Hi) (1 Reply)
Discussion started by: Balamani
1 Replies

10. Shell Programming and Scripting

Handling ftp error

I have a script which connects to remote server and ftp the files It works fine, however if there is any failure in ftp connection can it be handled??? ftp log ftp session start time is: Thu Jun 19 00:00:02 BST 2008 Not connected. Not connected. Interactive mode off. Not connected.... (1 Reply)
Discussion started by: vivek_damodaran
1 Replies
Login or Register to Ask a Question