Bonjour,
Je suis débutant en shell et je cherche à copier plusieurs lignes d'un fichier (correspondant à des fichiers XML) vers un autre emplacement.

Voici mon script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash 
source=/chemin1/
cible=/chemin2/
 
fichier="$(find $source -mmin -$((`date +%H`*60)) -iname '*.xml')" 
 
# copie du fichier si le fichier du jour est existant 
if [ -f "$fichier" ] 
then 
while read line
echo "$(date +%d/%m/%y-%kh%M) : copie du fichier $line" >> $(date +%Y-%m-%d).copie.log 
cp "$line" $cible
done < $fichier
else 
echo  "$(date +%d/%m/%y-%kh%M) : pas de nouveau fichier pour ce jour" >> $(date +%Y-%m-%d).copie.log  
fi
Le IF me sert à tester si des fichiers existent pour un jour J. S'il n'y a pas de fichiers, on ne doit rien copier.

Mon problème, c'est que cela ne fonctionne pas. Le résultat me renvoie systématiquement vers le ELSE, même lorsqu'il y a des fichiers dans le répertoire source.

Pouvez-vous m'aider ?

Je vous remercie !!