While bash

Résolu/Fermé
dixit40 Messages postés 644 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 13 mai 2014 - 29 oct. 2012 à 15:57
dixit40 Messages postés 644 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 13 mai 2014 - 29 oct. 2012 à 16:29
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 ?


2 réponses

laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 350
29 oct. 2012 à 16:08
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
dixit40 Messages postés 644 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 13 mai 2014 57
29 oct. 2012 à 16:23
Ah d'accord ok je comprends mieux maintenant merci beaucoup :D
0
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
dixit40 Messages postés 644 Date d'inscription vendredi 25 mars 2011 Statut Membre Dernière intervention 13 mai 2014 57
29 oct. 2012 à 16:29
ça marche aussi :D merci pour votre aide
0