IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

problème pour regarder si un fichier existe en bash


Sujet :

Linux

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut problème pour regarder si un fichier existe en bash
    Bonjour,

    j'aimerai vérifier si un fichier existe dans un dossier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if [-f "$fich_courant"]
    then
    	echo "oui" >f.txt
    else
    	echo "non $fich_courant" >f.txt
    fi
    Mais je vais toujours de else alors que le fichier existe.
    Quand je lance le script, j'ai une erreur qui dit que -f est une commande introuvable.

    Quelqu'un peut m'aider?


    Alan

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    j'ai trouvé, en faite, il faut mettre un espace entre les crochets et le test.

    Alaninho

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 040
    Points
    31 040
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par alaninho Voir le message
    j'ai trouvé, en faite, il faut mettre un espace entre les crochets et le test.

    Alaninho
    Hé oui. En "fait" le shell a besoin d'espaces pour bien comprendre quels sont les éléments à analyser.

    Accessoirement, test -f ne teste pas si un fichier existe mais si un fichier est de type "fichier régulier". Ce n'est pas tout à fait la même chose.
    Exemple: /dev/null existe bien mais test -f /dev/null renverra faux.

    Si tu veux tester si un fichier existe, faut utiliser test -e en bash. Et si t'es dans un shell qui ne connait pas l'option -e (comme Bourne Shell), alors faut passer par une autre commande qui te renverra une erreur si le fichier n'existe pas, comme par exemple "ls"

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ls -d "$fich_courant" 1>/dev/null 2>&1
    then
    	echo "oui" >f.txt
    else
    	echo "non $fich_courant" >f.txt
    fi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. code pour tester si un fichier existe?
    Par toutounesan dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/11/2007, 18h11
  2. Problème pour la Division avec NOT EXISTS
    Par myzu69 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/11/2007, 14h50
  3. [Lazarus] Problème pour l'utilisation des fichiers
    Par Lulu_n10 dans le forum Lazarus
    Réponses: 7
    Dernier message: 30/03/2007, 16h54
  4. Réponses: 2
    Dernier message: 07/11/2006, 22h42
  5. Probléme pour ecrire dans un fichier
    Par julien1981 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/06/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo