Salutation;

j'ai un couac dans le dernier script que je dois réaliser et je n'arrive pas à voir ce qui ne vas pas.

Je possède un fichier dans l'archive contenant les empreintes de divers fichiers.

Le but est de comparer si deux fichiers sont identiques en se servant de l'empreinte. Mais pour une raison que je ne m'explique pas je ne rentre pas dans mes conditions.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
./contenuDansTar.sh test.tar essai.sh
Le Fichier ListeMD5Tar.txt doit être présent dans l'archive !!!

Sauf que le fichier est bien présent x)


Voici le 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
 
# !/bin/sh
 
if [ $# -ne 2 ]
then
	echo "Usage $0 archive.tar nom_fichier"<&2;
	exit 1;
fi
 
if [ -d $2 ]
then
	echo "$2 n'est pas un fichier accessible; Usage $0 archive.tar nom_fichier"<&2;
	exit 2;
fi
 
Liste=0;
if [ -f $2 ]
then
a=`md5sum $2`;
b=`echo $a | cut -d " " -f1`;
	for k in `tar -tf $1`
	do
		if [ `basename $k` = "ListeMD5Tar.txt" ]
		then
		Liste=1;
		tar -xf $1 ListeMD5Tar.txt;
		nbLigne=`wc -l essai.sh | cut -d " " -f1`;
		while read ligne  
		do
			empreinte=`echo $ligne | cut -d " " -f1`;
			fichier=`echo $ligne | cut -d " " -f2`;
			if [ "$b" = "$empreinte" ]
			then
				tar -xf $1 $fichier;
			fi
		done < ListeMD5Tar.txt
		fi
	done
fi
 
if [ $Liste -eq 0 ]
then
echo "Le Fichier ListeMD5Tar.txt doit être présent dans l'archive !!!";
exit 3;
fi
 
if [ $Liste -eq 1 ]
then
rm ListeMD5Tar.txt;
fi
exit 0;