[comp.unix.shell] error processing in borne

afsihrs@cidsv01.cid.aes.doe.CA (04/25/91)

  WE ARE IN THE PROCESS OF CONVERTING TO UNIX AND HAVE COME UP
AGAINST A PROBLEM WITH ERROR PROCESSING. THE FOLLOWING IS AN 
EXAMPLE OF OUR OLD JCL:

  COMMAND
  COMMAND
  COMMAND
  EXIT
  ERROR-COMMAND
  ERROR-COMMAND
  IN THE ABOVE IF THE JOB WORKED PROPERLY IT ENDED AT EXIT,WHILE
IF ANY COMMAND ABORTED, IT WOULD IMMEDIATELY GO TO THE EXIT AND
PROCESS THE ERROR-COMMANDS. IS THERE SOME METHOD EQUIVALENT TO
TRAP THAT WE CAN USE TO EXIT ON ANY ERRORS? WE ALSO DON'T WANT 
TO HAVE TO CHECK AFTER EVERY COMMAND.

-- 
-------------------------------------------------------------------------
"If you don't like the weather wait awhile!" Mark Twain
Howard Salomon             Canadian Meteorological Centre
Analyst/Programmer         2121 N. Service Rd.

tchrist@convex.COM (Tom Christiansen) (04/25/91)

From the keyboard of afsihrs@cidsv01.cid.aes.doe.CA ():
:
:  WE ARE IN THE PROCESS OF CONVERTING TO UNIX AND HAVE COME UP
:AGAINST A PROBLEM WITH ERROR PROCESSING. THE FOLLOWING IS AN 
:EXAMPLE OF OUR OLD JCL:
:
:  COMMAND
:  COMMAND
:  COMMAND
:  EXIT
:  ERROR-COMMAND
:  ERROR-COMMAND
:  IN THE ABOVE IF THE JOB WORKED PROPERLY IT ENDED AT EXIT,WHILE
:IF ANY COMMAND ABORTED, IT WOULD IMMEDIATELY GO TO THE EXIT AND
:PROCESS THE ERROR-COMMANDS. IS THERE SOME METHOD EQUIVALENT TO
:TRAP THAT WE CAN USE TO EXIT ON ANY ERRORS? WE ALSO DON'T WANT 
:TO HAVE TO CHECK AFTER EVERY COMMAND.

well, the first problem you need to solve is to get your caps lock
keys fixed. :-)

you can use something like this:

    #!/bin/sh -e

    trap 'special error commands' 0
	some commands that might fail
	triggering the exit due to -e,
	and then trigger the onexit trap
    trap 0 # clear on exit trap
    exit 0 # and leave

--tom