Bonjour,
Je deviens fou avec mon problème. Ce doit être gros comme une maison, mais impossible de trouver. J'ai déjà trouvé beaucoups de réponses sur ce forum, alors si quelqu'un peu m'aider ...
Contexte :
Dans un script shell sous Linux, avant de copier des fichiers, je vérifie que ces fichiers ne sont pas déjà présent dans le répertoire de destination. Je fais une simple double boucle (pas très original, je sais). Pour chaque fichier de mon répertoire de destination, je fais une boucle dans mon repertoir d'origine et je redéfini une variable BOUBLONS à "o" si deux fichiers sont identiques.
Problème :
La variable DOUBLONS ne passe jamais à "o". L'affichage indique toujours "n".
La ligne echo "Fichier déjà sur le disque USB : $FICHIER" fonctionne bien.
Si je redefinie DOUBLONS après la boucle, cela fonctionne.
Mon code :
DOUBLONS="n"
find "$targetDir/$backupDir$DATE" -type f |
while read A ; do
FICHIER=${A##*\/}
find . -type f |
while read B ; do
FICHIER2=${B##*\/}
if [ "$FICHIER" == "$FICHIER2" ]; then
echo "Fichier déjà sur le disque USB : $FICHIER"
DOUBLONS="o"
fi
done
done
echo "DOUBLONS = $DOUBLONS"Configuration: Linux Mandriva
Firefox 3.0.10