Décrémenter un compteur depuis une fonction lancée par un find
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:
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:
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:
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:
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:
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.