Comment peut on recuperer les resultat d'une cmde dans des variable ? - Linux et OS Alternatifs
Marsh Posté le 18-04-2005 à 02:07:52
a=`ls`
echo $a
Ca devrait le faire
Marsh Posté le 20-04-2005 à 00:52:44
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.
Marsh Posté le 20-04-2005 à 10:44:16
Code :
|
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 sera non nul dans le pipe, et nul à l'extérieur.
Marsh Posté le 18-04-2005 à 01:27:00
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)