Bonjour les amis

J'ai développé un petit script qui me permet de mettre à jour l'arbre des ports sous FreeBSD. Via la commande trap, j'intercepte les diffèrents signaux provoqués par les applications exécutées par mon script via la fonction "go". Cependant, je n'arrive pas à récupérer le nom du programme qui a planté.

Voici mon script :
#!/usr/local/bin/zsh

# -------------------
# Global settings.
# -------------------

rep=/usr/ports
yplog=/root/yplog.log
nplog=/root/nplog.log

# --------------------
# Functions.
# --------------------

go () {
/usr/local/bin/cvsup -g -L 2 /root/cvsup/ports-supfile
cd /usr/ports && make fetchindex
cd /usr/ports && make index
/usr/local/sbin/portsdb -Uu
}

nostop () {
echo `date '+%a %b %d %T'` "ports: failed /usr/ports doesnt seem to exist" >> $nplog
}

ohyes () {
echo `date '+%a %b %d %T'` "ports: the port tree is up-to-date" >> $yplog
}

# --------------------
# Signals.
# --------------------

trap 'echo "signal [1]: Hangup" >> $nplog ; exit 1' 1
trap 'echo "signal [2]: Interrupt" >> $nplog ; exit 2' 2
trap 'echo "signal [3]: Quit" >> $nplog ; exit 3' 3
trap 'echo "signal [6]: Abort" >> $nplog ; exit 6' 6
trap 'echo "signal [9]: Killed" >> $nplog ; exit 9' 9
trap 'echo "signal [15]: Dying On signal" >> $nplog ; exit 15' 15

# --------------------
# Program.
# --------------------

if [ -d $rep ]; then
go
ohyes
else
nostop
fi

# End of file
J'ai essayé avec un :
trap 'echo "error occured:" awk "NR==$LINENO" $0 >> $nplog' ZERR
mais sans succès.

Avez-vous des idées à me soumettre ?

Merci