Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3400 connectés 

 


Dernière réponse
Sujet : Comment peut on recuperer les resultat d'une cmde dans des variable ?
dainybei

Code :
  1. { 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 :
  1. a=""; ls | { read a; echo dans pipe: $a; }; echo ext pipe: $a


a sera non nul dans le pipe, et nul à l'extérieur.


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
dainybei

Code :
  1. { 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 :
  1. a=""; ls | { read a; echo dans pipe: $a; }; echo ext pipe: $a


a sera non nul dans le pipe, et nul à l'extérieur.

weed lol c'est pas que je voulais savoir pour l'instant. En fait pour me depanner, j'ai fais le bourrin en utilisant des cut  
 
a=$(ls | cut -d " " -f 1)  
b=$(ls | cut -d " " -f 2)
c=$(ls | cut -d " " -f 3)
 
en fait c'est pas pour ls mais cela revient au meme. Je pense qu'avec mon cut, je pense que je serais un peu mieux compris.
sebchap a=`ls`
echo $a
Ca devrait le faire ;)
weed j'etais persuadé que l'on pouvais recupéré le resultat d'une commande ls par exemple en renvoyant le resultat à read  
 
ls | read a b c d
 
mais les variables sont vides.
 
Comment fais t'on pour recuperer sans utiliser une boucle ? (for par exemple)

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)