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