Code :
 - { read a; read b; read c; } < <( ls )
 
  | 
Avec bash, pas compatible sh
 
1. ls relié à un pipe affiche un fichier par ligne
 
2. dans le cas de "ls | read a", je pense qu'on a deux "instances" d'éxécution de shell reliées en pipe. La variable a est donc locale à un "sous-shell" et sa valeur n'est pas préservée quand tu sors du pipe.
 
pour t'en convaincre fait un :  
Code :
 - a=""; ls | { read a; echo dans pipe: $a; }; echo ext pipe: $a
 
  | 
a sera non nul dans le pipe, et nul à l'extérieur.
 
Message édité par dainybei le 20-04-2005 à 10:54:47