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