[shell] Redirection entrée standard clavier

Redirection entrée standard clavier [shell] - Shell/Batch - Programmation

Marsh Posté le 05-06-2008 à 00:12:26    

Bonjour!
J'aimerais savoir comment faire pour repasser l'entrée standard au clavier.
J'ai une boucle while avec un while read line<fichier et j'aimerais (dans le while) récupérer l'entrée standard au clavier (pour faire un read variable, et obtenir une réponse d'un utilisateur du script).
Merci de votre aide!
 
PS : j'ai cru comprendre que exec < ... pouvait faire ça, mais que lui donner en argument à droite??
Merci beaucoup :)  
 
à bientôt

Reply

Marsh Posté le 05-06-2008 à 00:12:26   

Reply

Marsh Posté le 11-06-2008 à 21:36:25    

efna a écrit :

Bonjour!
J'aimerais savoir comment faire pour repasser l'entrée standard au clavier.
J'ai une boucle while avec un while read line<fichier et j'aimerais (dans le while) récupérer l'entrée standard au clavier (pour faire un read variable, et obtenir une réponse d'un utilisateur du script).
Merci de votre aide!
 
PS : j'ai cru comprendre que exec < ... pouvait faire ça, mais que lui donner en argument à droite??
Merci beaucoup :)  
 
à bientôt


 
Faut que tu attribues un canal numéroté à ton fichier. Puis quand tu veux lire le fichier tu lis le n° en question et quand tu veux lire le clavier tu fais un read classique
 
Exemple

Code :
  1. #!/bin/sh
  2. # Attribution du canal au fichier "/etc/passwd"
  3. exec 3</etc/passwd
  4. # Lecture du fichier
  5. while read ligne 0<&3
  6. do
  7.     echo "$ligne"
  8.     # Attente réponse au clavier
  9.     echo "Voulez-vous continuer (o/n) ?"
  10.     read rep
  11.     test "$rep" = "n" -o "$rep" = "N" && break
  12. done


 
C'est aussi expliqué ici http://fr.lang.free.fr/cours/Shell_v2.0.pdf


Message édité par Sve@r le 11-06-2008 à 21:37:57

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed