COHERENT manpages
This page displays the COHERENT manpage for trap [Execute command on receipt of signal].
List of available manpages
Index
trap -- Command
Execute command on receipt of signal
trap [command] [n ...]
The command trap tells the shell to execute command when it receives signal
n.
You can name more than one signal on the command line for trap. Each signal
n is an integer, as defined in the header file signal.h. For information on
the traps that COHERENT recognizes and what each one means, see the Lexicon
entry for the system call signal(). If n is zero, the shell executes
command when it exits.
If you name no command on the command line for trap, then trap resets the
trap for signal n to its original value. If command is a null string
(i.e., the string ""), the shell traps signal n but does nothing; in
effect, this turns off signal n.
If you invoke trap with no arguments, it prints the signal number and
associated command for each signal for which a trap has been set.
The shell executes trap directly.
Example
The following example takes two files and outputs only those lines which
are the same.
# If input only one file-name then simply "cat".
if [ $# = 1 ]; then
cat $1
exit 0
# If input two file-names - Ok, else "Usage".
else
if [ $# != 2 ]; then
echo "Usage: cmn file1 [file2]"
exit 1
fi
fi
# TMP is original name of temporary file (/tmp/temp_(pid)
TMP=/tmp/temp_$$
# Temporary file has to be removed
trap 'rm $TMP; exit 1' 1 2 9
# Difference between "file1" and "difference between file1 and file2"
# is the common strings "file1" and "file2"
# The strings that are in "file1" and absent in "file2" print in TMP.
diff $1 $2 | sed -n -e "s/^< //p" > $TMP
# The strings that are in "file1" and absent in TMP print in stdout.
diff $1 $TMP | sed -n -e "s/^< //p"
# Remove temporary file
rm $TMP
See Also
commands,
ksh,
sh,
signal()











