While bash

Résolu
dixit40 Messages postés 706 Statut Membre -  
dixit40 Messages postés 706 Statut Membre -
Bonjour,

Voici mon code :

#!/bin/bash

while [ "$1 = 1" ]

do

echo " $1 existe "
done

quand j'exécute ma commande donc ./test "le nom du fichier"
cela me fait une boucle (jusque là tout vas bien) mais en théorie si je supprime le fichier la boucle devrait s'arrêter hors ce n'est pas le cas.

je ne comprends pas pourquoi ! Est ce que quelqu'un pourrait m'aider s'il vous plaît ?



--
dixit du 40
"A quoi ça sert de faire des maths si on ne peut pas compter les uns sur les autres ?"

2 réponses

  1. laoshu Messages postés 1251 Statut Membre 351
     
    Bonjour,

    Essaye avec :
    while [ -f "$1" ]

    Telle que tu l'as écrite, ta condition est toujours vraie ; puisqu'il n'y a qu'un terme.

    Tu auras plus d'infos en tapant :
    man test

    bon courage
    1
    1. dixit40 Messages postés 706 Statut Membre 57
       
      Ah d'accord ok je comprends mieux maintenant merci beaucoup :D
      0
  2. Utilisateur anonyme
     
    Bonjour,

    Pour moi la syntaxe n'est pas bonne,

    #!/bin/bash  
    
    while [ "$1" = "1" ]; do echo " $1 existe"; done  


    Mais comme ça ça ne fonctionne pas ?

    #!/bin/bash  
    
    while [ -e "$1" ]; do echo " $1 existe"; done  


    Ps: j'ai tout mis sur une ligne plus de lisibilité.

    ♪♪ Slowin' Cleaner development, Windows Optimizer
    0
    1. dixit40 Messages postés 706 Statut Membre 57
       
      ça marche aussi :D merci pour votre aide
      0