Visit Our UNIX and Linux User Community


How to trap


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to trap
# 1  
Old 07-29-2008
How to trap

I have a script
Code:
#!/bin/ksh

trap cleanup 20

cleanup()
{
  cat $t.log
  echo Caught
  exit 1
}

if [ `echo ABCDEFGHORA|grep -is "ORA"` ];then
  echo Found >>t.log
  exit 20
else
  echo Not found >>t.log
  exit 20
fi

Please tell me how to trap the signal.
# 2  
Old 07-29-2008
What is the problem exactly? Your script already traps signal 20.

However, exit code 20 is something entirely different than signal 20. Trapping pseudo-signal 0 allows you to perform an action when the script terminates (regardless of the exit code).
# 3  
Old 07-29-2008
Its not calling the function and not printing the "Caught" statement.
# 4  
Old 07-29-2008
If you are expecting "exit 20" to generate the signal, it doesn't work that way. A signal (an interrupt) is something generated by an external event; this is what you can "catch" with the trap keyword. You can generate the signal by hand with kill -s 20 (processid) to trigger the trap. I'm guessing that is not the problem you want to solve in the first place, though, based on your script and your question.

Again, coincidentally, you can set up a trap to handle "signal" 0 (there is no such signal, per se, it's just a special case of trap), however. It will not care what number you use after exit but execute whenever the script exits.

Code:
#!/bin/sh

trap ketchup 0

ketchup () {
  cat t.log
  echo caught
  exit $?
}

if echo ABCDEFGHORA|grep -is "ORA" >/dev/null; then
  echo Found
else
  echo Not found
fi >>t.log

No explicit exit is required, either; the event will trigger when the script simply ends.

I made some stylistic changes to the conditional logic as well.
# 5  
Old 07-29-2008
Thanks for the information. So in shell scripts we do not have anything by which we can throw and catch user defined error?
# 6  
Old 07-30-2008
You can do a conditional inside the trap or something, but the concept of catch / throw is not directly supported, no.

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Trap

Hi Ppl, Need help $ cat trap.sh #!/bin/bash trap cleanup 1 2 3 15 cleanup() { echo “I was running \”$BASH_COMMAND\” when you interrupted me.” echo “Quitting.” exit 1 } while : do echo -en “hello. “ sleep 1 (3 Replies)
Discussion started by: heman96
3 Replies

2. Homework & Coursework Questions

VM trap may work differently than a pure install trap.

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: That is the last reply I received from my instructor, and I'm looking for some alternatives. When using... (2 Replies)
Discussion started by: newuser45
2 Replies

3. Shell Programming and Scripting

what does this 'trap' do?

trap "" 1 2 3 Thanks, -dog (1 Reply)
Discussion started by: landog
1 Replies

4. Shell Programming and Scripting

trap

Hi At the beginning of my script, i will create a file and at the end of the script i will delete that. But i got to delete the file even if the process is forcefully killed, or server is rebooted... I think i can make use of trap signal, but couldnt figure out how and where to use in my... (4 Replies)
Discussion started by: vasuarjula
4 Replies

5. Shell Programming and Scripting

Cntl+z Trap is not detecting ??? Help required to add a trap detection ???

Hi folks, I have tried to add some trap detection in the below script....this script is used to monitor database activities...in a rather awkward way :rolleyes:.... The idea behind adding trap is that....this script creates lots of temporary files in the running folder to store the count... (1 Reply)
Discussion started by: frozensmilz
1 Replies

6. Shell Programming and Scripting

Trap

Hi All "Identify the behavior of traps, mechanism to implement traps in the snmp framework" What does it mean?? Can anybody explain.. Whats this Trap?? Thanx in Advance. (1 Reply)
Discussion started by: jeenat
1 Replies

7. UNIX for Advanced & Expert Users

Need help with trap

Hi Our problem is knowing: What is the "best" way of simulating a TRAP for ERR within a function, since we know this will not work directly with ksh93 and aix5. How can we save the error encountered in the function and then deal with it in the calling script? Thanks! (3 Replies)
Discussion started by: theteeth07
3 Replies

8. Shell Programming and Scripting

Building a better mouse trap, or How many lines of code does it take to trap a mouse?

Hello all, I'm hoping to get a little insight from some of the wily veterans amongst you. I've written a script to check for new outgoing files to our vendors located on our ssl server. It seems to be working ok, but the final question here, will be one of logic, and/or a better way to... (4 Replies)
Discussion started by: mph
4 Replies

9. Shell Programming and Scripting

trap

I'd like to use "trap" command on my unix machine sunOS 5.7. But somehow when I do "which trap" command, it's no where to be found. Any one knows how I can get it installed? Thanks!! (9 Replies)
Discussion started by: whatisthis
9 Replies

10. UNIX for Advanced & Expert Users

Need help with trap

My problem is this: I need to have a catch-all for my processes. An example would be, using a trap, in the parent, to catch any non-0 exit or invalid command (a way to catch core dumps would be cool, too) in not only the parent, but it's children and they're children. Not only that, but I also... (7 Replies)
Discussion started by: marc6057
7 Replies

Featured Tech Videos