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 25/03/2019, à 21:49

spectre128

probleme de script [Resolu]

bonsoir,

j'ai realiser un simple script ( je suis debutant donc j'y vais a taton) et deja je rencontre des problemes
dont je n'arrive pas à trouver la source.

j'ai un fichier a.txt

7f 7f
-
00 ff
-
02 fd
-
02 fd 11 ee 08 00 00 00 08 03 fc
-
11 ee
-
1f ff f7 e0 f7
-
01 fe
-
7f 00 ff 02 fd 92 6d
7f 7f 11 ee 1f ff f7 e0 f7 13 ec 43 bc ff 00
-
31 ce

Mon script:
le script devrait normalement me demander à chaque fois qu'il rencontre "-"
d'appuyer une touche

for line in $(cat a.txt)
do echo $line
   if [ $line ="-" ]
  then
  read -p "appuyer une touche ..."
  else
  echo "."
  fi
done


j'obtiens:

7f
.
7f
.
---------  NDR: je met plusieurs moins pour la visibilitee du lecteur, deja la ça deconne
.
00
.
ff
.
---------------
appuyer sur une touche ....
02
.
fd
-
appuyer une touche

******** ca marche jusqu'a cet endroit critique ou plus aucun - du fichier provoque "appuyer sur une touche"

43
.
bc
.
ff
.
00
.
------------- (j'aurai du avoir appuyer une touche !!!  et plus aucun traitement du "-"
.
31
.
ce


C'etait pas evident de poster ce genre de probleme.

Quelqu'un aurait t'il une explication car je ne comprend pas.

Merci. Cordialement.

Dernière modification par spectre128 (Le 25/03/2019, à 23:33)

Hors ligne

#2 Le 25/03/2019, à 22:12

pingouinux

Re : probleme de script [Resolu]

Bonjour,
Essaye ceci

while read -u 3 line
do echo "ligne=$line="
   if [ "$line" = "-" ]
   then
      read -p "appuyer une touche ..."
   else
      echo "."
   fi
done 3<a.txt

Hors ligne

#3 Le 25/03/2019, à 22:29

spectre128

Re : probleme de script [Resolu]

cool!!

merci Pingouinux, ca marche !!

j'ai corriger des fautes de frappe (apres l'apero c'est normal smile )

while read -u 3 line
do echo "$line"
     if [ "$line" = "-" ]
     then
     read -p "appuyer sur une touche ..."
     else echo "."
fi
done 3<a.txt

je vais "decrypter"  ta reponse.

Hors ligne

#4 Le 25/03/2019, à 22:59

pingouinux

Re : probleme de script [Resolu]

Avec cette commande, tu lis le fichier mot par mot, au lieu de ligne par ligne.

for line in $(cat a.txt)

J'ai affecté un autre descripteur de fichier (ici 3) au fichier d'entrée (au lieu de la valeur standard 0), car sinon le "read -p ..." va lire aussi ton fichier d'entrée, au lieu du clavier.

Hors ligne

#5 Le 25/03/2019, à 23:24

spectre128

Re : probleme de script [Resolu]

je crois comprendre le ligne par ligne,

justement j'avais pioché  le script dans le post de qqun qui avais un probleme que son ligne par ligne
affiché mot pour mot. smile

je ne voyais que le resultat que je voulais obtenir.

https://www.commentcamarche.net/faq/502 … -par-ligne

Hors ligne