Figure 4: C shell interrupt routine for Control-C
#!/bin/csh -f
#
set N = 30 # Wait N (1 - 59) seconds.
#
# John Lees lees@cps.msu.edu
# Pattern Recognition & Image Processing Laboratory
# M i c h i g a n S t a t e U n i v e r s i t y
#
# Interrupt routine for Control-C.
# Set a trap on Control-C.
onintr impatient
# Sleep for N seconds.
set start = `date +%S`
sleep $N
echo "This is seen only if you did not hit Control-C"
exit
# On Control-C, execution is transferred to this label.
# Unlike with the Bourne shell example, there is no
# return to the previous point of execution.
impatient:
set now = `date +%S`
# Figure it both ways and use the correct one.
set a = "[ $N $now $start - 60 + - ] sa"
set b = " $N $now $start - - d $N <a p"
set togo = `echo "$a $b" | /usr/bin/dc`
echo "\nPatience! Still $togo seconds to go...."
sleep $togo
|