Rechercher : dans
Par :

SHELL: read

Dernière réponse le 10 oct 2007 à 14:09:23 tlep, le 10 oct 2007 à 12:03:59 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un souci avec 2 read en boucle dans un shell :

#!/bin/bash
L=1
while read ligne;do
while true;do
clear
echo "Supprimer \"$ligne\" ?"
reponse=""
read reponse
if [ "$reponse" = "o" ];then
sed -i $L'd' $1
break
elif [ "$reponse" != "" ];then
L=$(($L+1))
break
fi
done
done < mon_fichier

Je veux afficher chaque ligne pour en demander la suppression.
Bizarrement, la variable "$reponse" prend la valeur de "$ligne".

Très étrange non ? :-((

Configuration: Windows XP
Firefox 2.0.0.7

Meilleures réponses pour « SHELL: read » dans :
Systèmes UNIX - Le shell Voir Introduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
L'adresse mémoire ne peut pas être 'Read' ou 'Written' VoirL'adresse mémoire ne peut pas être 'Read' ou 'Written' Vérifier le fonctionnement des barrettes mémoire Vérifier la présence de malwares et le cas échéant, les éradiquer Vérifier la configuration de Windows Nettoyer le disque dur Réparer...
Guide d'utilisation du Shell pour débutant VoirSHELL BASH - GUIDE D'UTILISATION - Niveau Débutant Introduction Appel aux membres CCM II. C'est quoi le shell ? III. Comment accéder à la ligne de commande IV. Les consoles virtuelles Exemple : Accéder à la console 3 depuis l'interface...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Télécharger CDBF Shell VoirCertains fichiers de votre ordinateur sont dans un format appelé DBF. Ce sont généralement des bases de données issues de DBase. Il y a par exemple les fichiers liés à Outlook Express qui sont dans ce format. CDBF Shell est une application vous...
Linux - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système...

1

jipicy, le 10 oct 2007 à 13:08:00

Salut,

C'est le double "read" qui met la pagaille je pense (enfin j'en suis même sûr, mais je sais pas pourquoi :-\ ).

Donc au lieu de passer par une boucle "while", essaie plutôt avec une boucle "for" en modifiant la variable "$IFS", du style :

L=1
IFS=$'\n'
for ligne in $(cat $1)
do
echo "Affichage ligne $L ?"
read -e reponse
if [ "$reponse" = "o" ]
then
echo $ligne
fi
L=$(expr $L + 1)
done
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

 tlep, le 10 oct 2007 à 14:09:23

J'y avais bien pensé mais j'imaginais que ce comportement était explicable;

merci ;

Répondre à tlep