Bonjour,

Je réalise mon premier script shell et ce n'est pas facile.

Voici le script que je suis en train de faire :

1) Je met dans un tableau le chemin de tous les dossiers dont j'ai besoin.
2) Je récupère sur un autre serveur la liste des dossiers.
3) Je vérifie que chaque dossiers dont j'ai besoin existe sur l'autre serveur.

Voici mon code :

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
#!/bin/sh
 
DATE=`date +%d_%m_%Y`
JOUR=`date +%d`
 
# je met le chemin de tous les dossiers dont j'ai besoin dans un tableau
tableau=(
"sauvegarde/$DATE/" 
"sauvegarde/$DATE/bdd/" 
"sauvegarde/$DATE/sites/" 
"sauvegarde/$DATE/configuration/"
)
 
# Je liste tous les dossiers présent sur le serveur de sauvegarde et je les liste dans listing.txt
ssh root@leserveur.net find /sauvegarde/ -type d > /sauvegarde/listing.txt 
 
# Je verifie que chaque dossier dont j'ai besoin est bien créé sur le serveur de sauvegarde
for fichier in ${tableau[@]}
do
	if [ grep "$fichier" /sauvegarde/listing.txt ]
	then
		echo ""
		echo "Le dossier existe."
		echo ""
	else
		echo ""
		echo "Le dossier n'héxiste pas."
		echo ""
	fi
 
done
L'étape 2 fonctionne et le fichier listing.txt contient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
/sauvegarde/
/sauvegarde/configuration
/sauvegarde/configuration/xx.xxxxxxxx.com
/sauvegarde/configuration/xx.xxxxxxxx.com/etc
/sauvegarde/sites
/sauvegarde/sites/xx.xxxxxxxx
/sauvegarde/sites/xx.xxxxxxxx/img
/sauvegarde/sites/xx.xxxxxxxx/include
/sauvegarde/sites/xx.xxxxxxxx/maj
.....etc
par contre quand je veux vérifier que chaque ligne du tableau existe dans listing.txt, j'ai le message d'erreur suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
./test.sh: line 20: [: sauvegarde/08_08_2013/: binary operator expected
et ce pour chaque ligne du tableau.

Quelqu'un voie t-il ce qui ne va pas.

Merci d’avance.