If a signal or software interrupt is generated while the script is running, then we can define what action is performed by that interrupt handler using the
trap command. The
trap command helps us in re-assigning the system response to a particular signal through the user-defined function or commands.
The syntax to use the
trap command is either of the following:
$ trap 'command; command' signal-name $ trap 'command; command' signal-number
The usage as per the preceding syntax is as follows:
trap 'echo "You pressed Control key" ' 0 1 2 15
This will print the message
You pressed Control key, when any of the signals
SIGTERM are received by the process:
trap 'rm file.tmp; echo "file.tmp is deleted" ' INT TERM HUP
When any of the
SIGHUP signals arrive, then they will delete the
file.tmp file and print the message.
While using the
trap command, if the command string is surrounded by double quotes, then the command substitution and variable substitution will be done during the
trap command execution. If the command
string is enclosed in single quotes then the command substitution and variable substitution will be done when the signal is detected.