Bonjour,

voila j'ai realisé un petit script shell qui permet, en passant 2 repertoire en argument, de les comparer et de renvoyer un code annonçant s'ils sont identique ou non (dans leur contenu aussi).
Le probleme est que j'ai besoin de me deplacer dans les repertoire dans le script, et que ça me renvoi cette erreur "can't cd to..."

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
# si le nombre d'arguments n'est pas egal a 2
if [ $# -ne 2 ]; then
 
    echo "Erreur : Il faut 2 arguments."
 
# sinon, si le nombre d'arguments est egal a 2
elif [ $# -eq 2 ]; then
 
	path=`pwd`
 
    # si les deux arguments sont des repertoires
    if [ -d $1 ] && [ -d $2 ]; then
 
	# on liste le contenu du repertoire qui contient le plus d'elements
	if [ `ls -l $1 | wc -l` -gt `ls -l $2 | wc -l` ]; then
	    rep1=$1
	    rep2=$2
	else
	    rep1=$2
	    rep2=$1
	fi	
 
	# listage du repertoire qui a le plus d'elements
	contentrep1=`ls $rep1`
 
	# on les elements de rep1
	for var in $contentrep1
	  do
	  # on se place dans $rep1
	  cd $rep1
	  # si $var est un fichier dans $rep1
	  if [ -f $var ]; then
	      # on se place dans rep2
	      cd $rep2
	      # si $var n'est pas un fichier dans $rep2
	      if [ ! -f $var ]; then
		  echo "Code de retour : 1"
		  exit 1
	      fi
	  # sinon, si $var est un repertoire dans $rep1
	  elif [ -d $var ]; then
	      # on se place dans $rep2
	      cd $rep2
	      # si $var n'est pas un repertoire dans $rep2
	      if [ ! -d $var ]; then
		  echo "Code de retour : 1"
		  exit 1
	      fi
	  fi
	done
	# si on arrive ici, c'est que les deux repertoires sont identiques
	echo "Code de retour : 0"
	exit 0
 
 
    fi
fi
Voila, j'ai essayé plein de bidouillages syntaxique mais je n'y arrive pas
Si quelqu'un connait une solution ou une alternative merci d'avance

++