Petit gestionnaire de log, permet d'utiliser plusieurs niveaux de message dans
un script.
loglevel () {
   
# $1 est le loglevel désiré
# $level est l'index de ce loglevel dans la liste des loglevels
    typeset level=$LOGLEVELS[(i)$1]
# pour tous les loglevels inferieurs a celui demandé
# ( ${^LOGLEVELS[1,$level - 1]} )
# je genere des fonctions vides
# eval $LOGLEVEL'  () { };' 
# pour les autres, je génère des fonctions qui écrivent
# les paramètres dans sterr ( print -u2 )
# eval $LOGLEVEL'  () { print -u2 $* };' 
    eval ${^LOGLEVELS[1,$level - 1]}' () { };' ${^LOGLEVELS[$level,-1]}' () { print -u2 $* };'
}
Definition des différents niveaux d'erreur
LOGLEVELS=( DEBUG{3..1} DEBUG WARN VERBOSE INFO QUIET )
Utilisation
loglevel QUIET
QUIET message sans importance
DEBUG message de debug