Shell

Sirene22 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Sirene22 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
svp qui peut me dire ou es l'erreur dans ce script (c'est un script qui permet de chercher un fichier dans la racine ) parsq quand j l'ai lance dans le terminal il fais un recherche dans la racine mais le terminal se ferme automatiquement il m'envoi pas un message si le fichier existe ou nn

#!/bin/bash
echo 'veulliez saisire le nom de votre fichier '
read fichier
find / -name $fichier
if [ -f "$fichier"]
then
echo '$fichier existe "
else
echo '$fichier non existe"
fi

A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Salut,

mais le terminal se ferme automatiquement
Je suppose que tu lances ton script en double cliquant dessus, non ?
Si la réponse est oui, alors c'est normal que le terminal se ferme. Il faut lancer ton script depuis un terminal.

Ensuite, même si ton terminal ne se fermait pas, le résultat de ton script serait toujours celui de la condition "else", dans la mesure où la variable "$fichier" contient juste le nom de ton fichier, sans le chemin, vu que tu cherches ce fichier sans en connaître l'emplacement. Donc le test se faisant dans le répertoire d'où est lancé le script, forcément le fichier recherché n'existe pas ;-(

Pour que le test s'effectue, il faut que tu récupères la sortie de la commande find, soit dans une variable, soit dans un fichier, mais attention, la commande find lançait tel que tu le fais, va générer un grand nombre d'erreur vu que la recherche va se faire sur toute la racine et son arborescence récursivement, et là forcément, tu n'auras pas la permission de lire partout ;-((

Il te faudra rediriger les messages d'erreurs vers "/dev/null" sans quoi ton test ne sera jamais exact ;-\
0
Sirene22 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Mercii bcp ça ma aide vraiment
0