Bonjour à tous et à toutes,

Dans un script bash, je voudrai décrémenter un compteur à chaque fois qu'une fonction c'est exécutée. Cette fonction est elle même appelée par un find.
Actuellement, j'ai bricolé un truc comme ça :
Une première fonction va trouver les fichiers qui vont être traités par la suite dans mon arborescence
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
function comptage
{
    xxxx=$(find $source -type f \( -name "*.doc" -or -name "*.xls" \) | wc -l)
    echo "$xxxx"
}
export -f comptage
Cette fonction elle même est appelée par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
compteur=0 && export compteur
compteur=$(comptage)
Jusque là tout fonctionne.

J'ai ensuite ma seconde fonction qui, elle va faire le traitement proprement dit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
function traitement
{
    echo "$compteur et du texte"
    "mon code qui fonctionne"
    $compteur=`expr $compteur - 1`
}
export -f traitement
Le traitement lui-même n'a pas d'importance dans mon souci puisqu'il fonctionne parfaitement

La fonction traitement est appelée par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
find $source -type f \( -name "*.doc" -or -name "*.xls" \) -exec bash -c 'traitement '$0' ' {} \; ;
Là aussi, l'appel de la fonction marche sans aucun souci.

Là où le bas blesse, c'est que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
echo "$compteur et du texte"
dans la fonction affiche toujours la valeur initiale, non décrémentée.

Si quelqu'un a une idée, je l'en remercie par avance.