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