While bash

Résolu
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. 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. Ah d'accord ok je comprends mieux maintenant merci beaucoup :D
  2. 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 ♫
    1. ça marche aussi :D merci pour votre aide