Rechercher : dans
Par :

Vérifier l'existence d'un fichier

Dernière réponse le 19 mar 2009 à 21:11:32 Arun, le 19 mar 2009 à 00:43:30 
 Signaler ce message aux modérateurs

Bonjour,
je suis entrain d'ecrire un script permettant de vérifier l'existance d'un fichier.
disant que je dispose de 2 fichiers : fichier1 et fichier2 et d'un fichier test.sh (contenant le script)

test.sh contient
#!/bin/sh

if [ $# -eq 0 ]; then
echo "'basename $0': missing arguments." >&2
echo "usage: 'basename $0' file ..." >&2
exit -1
fi



je lance la commande par :
$ sh test.sh fichier1 fichier2

le programme vérifie bien que le nombre d'arguement est bien supérieur à 0.
Cependant je voudrais également qu'il vérifie que fichier1 et fichier2 existent.


par exemple, si je lance la commande par :
$ sh test.sh fichier1 fichier3 fichier 4

Il faut que le programme me dit que fichier3 et fichier4 n'existe pas.

Auriez-vous une idée du script que je peux écrire pour que cette vérification soit faite.

Merci

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « Vérifier l'existence d'un fichier » dans :
Réparer Windows 95/98 VoirSous Windows 9x, il est possible de vérifier les fichiers systèmes corrompus. Il vous faudra insérer votre CD de Windows 95/98 dans le lecteur. Démarrer > Programmes > Accessoires > Outils système > Informations système Choisir "outils" >...
Télécharger SFV Checker VoirSFV Checker est un contrôleur d'intégrité permettant de s'assurer que vos archives multi-volumes sont complètes et à jour. SFV Checker utilise la technologie CRC-32 pour vérifier chaque fichier et vous alerte si un ou plusieurs fichiers sont...
Le système de fichiers NTFS VoirLe système de fichiers NTFS Le système de fichiers NTFS (New Technology File System) utilise un système basé sur une structure appelée « table de fichiers maître », ou MFT (Master File Table), permettant de contenir des informations détaillées sur...
Objet FileSystemObject (FSO) VoirFileSystemObject L'objet FileSystemObject (FSO) permet de manipuler le système de fichiers de Windows. L'utilisation du modèle d'objet FileSystemObject s'effectue en créant une instance de l'objet Scripting.FileSystemObject l'intermédiaire de la...
Introduction à XML VoirPrésentation de XML XML (entendez eXtensible Markup Language et traduisez Langage à balises étendu, ou Langage à balises extensible) est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises. Il s'agit effectivement...

1

x11r6, le 19 mar 2009 à 00:45:57

Bonsoir
test -f lefichier
cordialement

Répondre à x11r6

2

HostOfSeraphim, le 19 mar 2009 à 00:47:11

Un petit indice pour tester l'existence d'un fichier :

if [ -e $fichier ] then...

Configuration : Linux Debian Lenny / Noyau 2.6.26 / Gnome / ­Iceweasel 3
Connexion Internet : ADSL Orange 8M (Livebox)

Répondre à HostOfSeraphim

6

Arun, le 19 mar 2009 à 09:43:58

Je n'arrive pas à voit ta réponse HostOfSeraphim
merci

Répondre à Arun

3

x11r6, le 19 mar 2009 à 00:48:27

Ou bien...

if [ -f lefichier ]
then
// le fichier existe
else
// le fichier existe pas
fi

man test

cordialement

Répondre à x11r6

4

Arun, le 19 mar 2009 à 01:30:15

Merci de votre réponse.
Cependant j'ai un probléme pour adapter cette commande.
Je m'explique....

supposons que j'entre la commande :

$ sh test.sh fichier1

en ayant ds le script :

if [ -e $* ]
echo "le fichier $* existe"
else
echo "le fichier $* n'existe pas"
fi

on a comme résultat :

le fichier fichier1 existe

Cependant, lorsque je tape comme commande : $ sh test.sh fichier1 fichier1

on a comme résultat le fichier fichier1 fichier2 n'existe pas.

Comment faire pour que le test soit fait d'un coup uniquement sur fichier1 et d'un autre coup sur fichier2 et non pas sur "fichier1 fichier2" ( qui correspond à rien )?


Merci

Répondre à Arun

5

HostOfSeraphim, le 19 mar 2009 à 09:03:03

C'est normal, $* correspond à l'ensemble des valeurs passées en paramètre.

Configuration : Linux Debian Lenny / Noyau 2.6.26 / Gnome / ­Iceweasel 3
Connexion Internet : ADSL Orange 8M (Livebox)

Répondre à HostOfSeraphim

7

arun, le 19 mar 2009 à 14:50:10

Comment pourrais-je donc faire pour que je programme vérifie le $1 en premier puis le $2 ainsi de suite jusqu'au nombre d'arguments que j'entre ?

Merci

Répondre à arun

8

jivef, le 19 mar 2009 à 20:07:38

Bonjour,
La solution est $@ qui prend les paramètres un par un.
Mais je te conseille de mettre ton test à l'intérieur d'une boucle for...
Pour être bref :

#!/bin/sh
for $@ in param1 param2 param3 [...] param22487899887755396
do
if test ...
..
fi
done.

Vérifie la syntaxe, mais je crois que c'est ça.

Bien à toi

Une idée reçue est souvent une idée morte.

Répondre à jivef

9

 Arun, le 19 mar 2009 à 21:11:32

Bonsoir,

Merci de votre aide.

J'ai essayé plusieurs type de syntaxe et ça veut pas fonctionner :s

Répondre à Arun