Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/05/2015, à 19:32

yaba64

Vérifier présence d'un fichier

Bonjour

J'aimerai savoir comment vérifier q'un paramètre d'un script est bon pas seulement présent

Par exemple si mon paramètre est le fichier analyse.log

comment faire pour tester la présence de ce fichier en $1

je pensais à ce genre de code :

if [ $1 ! -e $analyse.log ]
then ...

j'ai beau retourner dans tous les sens je n'y arrive pas

Merci pour l'aide apporté depuis le début


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne

#2 Le 28/05/2015, à 19:46

Rufus T. Firefly

Re : Vérifier présence d'un fichier

Salut,

Ça ne répond pas à ta question, mais tu trouveras sûrement dans la bible du bash...


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#3 Le 28/05/2015, à 21:33

Compte anonymisé

Re : Vérifier présence d'un fichier

if [ -f $1 ] ; then
  echo "Le fichier $1 existe."
fi

#4 Le 28/05/2015, à 22:18

yaba64

Re : Vérifier présence d'un fichier

oui ça c'est ce que j'ai utilisé en attendant
mais le problème c'est que ça bug si je n'écris pas le fichier correctement car ça vérifie juste que param1 est bien rempli et il passe à la suite;
alors que moi je voudrais que si dans param1 je n'ai pas écrit précisément analyse.log il détecte l'erreur.


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne

#5 Le 28/05/2015, à 23:20

Compte anonymisé

Re : Vérifier présence d'un fichier

roll

if [ "$1" = "analyse.log" -a  -f $1 ] ; then
  echo "Le fichier $1 existe."
fi

#6 Le 29/05/2015, à 08:13

yaba64

Re : Vérifier présence d'un fichier

Désolé ça ne marche pas ça !


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne

#7 Le 29/05/2015, à 08:32

bruno

Re : Vérifier présence d'un fichier

if [[ "$1" = "analyse.log" && -f $1 ]] ; then
  echo "Le fichier $1 existe."
fi

Hors ligne

#8 Le 29/05/2015, à 09:22

yaba64

Re : Vérifier présence d'un fichier

Nikel bruno !! bon j'aurai jamais trouvé ça tout seul surtout à cause des doubles [[
c'est possible d'avoir une explication stp ??

Merci encore


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne

#9 Le 29/05/2015, à 10:10

bruno

Re : Vérifier présence d'un fichier

Regarde le lien du message #2. Il doit y a voir une rubrique « tests ». Je ne me souviens plus l'explication exacte, mais il faut utiliser les doubles crochet lorsqu'on a des opérateurs logiques ou des expressions à évaluer.

Note que cela devrait également fonctionner comme ceci :

if [ "$1" = "analyse.log" ] &&  [ -f $1 ] ; then
  echo "Le fichier $1 existe."
fi

Dernière modification par bruno (Le 29/05/2015, à 10:16)

Hors ligne

#10 Le 29/05/2015, à 10:15

Compte anonymisé

Re : Vérifier présence d'un fichier

Je suis désolé mais c'est 2 écritures de la même chose qui fonctionne dans les 2 cas. J'ai pris soin de vérifier avant de te proposer cette solution.
Tu vas me dire que si tu fais tourner ce script :

#!/bin/bash

if [ "$1" = "analyse.log" -a  -f "$1" ] ; then
  echo "Le fichier $1 existe. (V1)"
fi

if [[ "$1" = "analyse.log" && -f "$1" ]] ; then
  echo "Le fichier $1 existe. (V2)"
fi

il n'y a qu'un seul if sur les 2 qui fonctionne ???

#11 Le 29/05/2015, à 10:19

bruno

Re : Vérifier présence d'un fichier

Au temps pour moi, je ne l'avais pas bien analysé, mais la commande donnée par alx est strictement équivalente.

Hors ligne

#12 Le 29/05/2015, à 10:52

yaba64

Re : Vérifier présence d'un fichier

Beh alors je ne sais pas pk ça marchait pas j'avais peut être fait une erreur ailleurs

Merci à vous pour les infos, c'est sympa de votre part d'avoir pris sur votre temps pour m'aider


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne

#13 Le 29/05/2015, à 11:46

Watael

Re : Vérifier présence d'un fichier

salut,

quel intérêt de passer une constante en tant que paramètre d'un script ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#14 Le 29/05/2015, à 15:04

yaba64

Re : Vérifier présence d'un fichier

Aucun je trouve, c'est un exercice


Ordi : i7 3770K- CM DZ77GA 70K - Gigabyte GTX 1050ti - 16go Ram DDR3

Hors ligne