mre0311 Posté(e) le 14 novembre 2007 Partager Posté(e) le 14 novembre 2007 Bonjour, pour les cours je dois faire un scripts qui test si le fichier spécifié par l'utilisateur existe voici mon script: #!/bin/bash #Tester si un répertoire/fichier existe, ou pas shopt -s -o nounset #Global declarations if [ $# -ne 1 ] then echo "Vous n'avez pas mis le bon nombre de paramètre" echo "Il vous en faut 1 seul" else if [ -d "$1" ] then echo "$1 existe, c'est un répertoire" else if [ -e "$1" ] then echo "$1 existe, c'est un fichier" else if [ -e "$1.*" ] then echo "$1 existe, c'est un fichier" else echo "$1 n'existe pas" fi fi fi fi tous fonctione sauf si le fichier a une extension! exemple: je met comme paramètre "monfichier" et qu'il yexiste un fichier "monfichier.txt" mon script me dis qu'il n'y a pas de fichier "monfichier" je sais pas si c'est très claire merci de votre aide ps: on utilise cygwin comme émulateur de shell Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 14 novembre 2007 Partager Posté(e) le 14 novembre 2007 if[ -e $FICHIER ] te dit si $FICHIER existe (que ce soit un repertoire, un soket, un pipe nommé, etc, etc...). Si tu veux chercher si ${FICHIER}.${EXTENSION} existe quelque soit l'extension, ça va pas être possible avec if [ -e ] tu devrais essayer dans ce cas un list=$(ls ${FICHIER}.*), dont tu testes la tailleaccessible via ${#list} Lien vers le commentaire Partager sur d’autres sites More sharing options...
mre0311 Posté(e) le 14 novembre 2007 Auteur Partager Posté(e) le 14 novembre 2007 Enfaite j'ai trouvé une solution, j'avais mis if [ -e "$1.*" ] alors que il fallait mettre if [ -e "$1".* ] et la miracle sa fonctionne! (foutu guillemet) lorinc, j'ai pas tous compris ce que tu m'explique mais merci de ton aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 15 novembre 2007 Partager Posté(e) le 15 novembre 2007 lorinc, j'ai pas tous compris ce que tu m'explique mais merci de ton aide tu devrais essayer dans ce cas un list=$(ls ${FICHIER}.*), dont tu testes la tailleaccessible via ${#list} Pour reprendre ce qu'il a mis : list=$(ls ${FICHIER}.*) on décortique : ls ${FICHIER}.* --> donnera la liste des fichiers nommé le_nom_que_tu_recherches.* donc n'importe quelle extension Ce résultat est mis dans la variable list. #list donne la taille. Et voilà Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 novembre 2007 Partager Posté(e) le 16 novembre 2007 Pensez quand même à utiliser les balises "codebox" quand il y a du code Lien vers le commentaire Partager sur d’autres sites More sharing options...
mre0311 Posté(e) le 18 novembre 2007 Auteur Partager Posté(e) le 18 novembre 2007 Oui effectivement avec la balise code c'est plus lisible Merci de votre aide, le résultat que j'obtiens me conviens Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.