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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [SHELL] Rediriger le résultat d'une commande vers une variable ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SHELL] Rediriger le résultat d'une commande vers une variable ?

n°1207756
Elbarto
Posté le 30-03-2010 à 00:52:51  profilanswer
 

Bonjour,
 
j'ai ce script qui permet de rediriger le résultat d'une commande "ls -ial" vers une variable shell puis de l'afficher via la commande "echo" :
 

Code :
  1. x=$(ls -ial)
  2. echo $x


 
le problème c'est que la commande echo m'affiche le résultat sans respecter les sauts de ligne, ça m'affiche le résultat de la commande ls en un seul bloc comme si les sauts de ligne étaient supprimés, ça rend le résultat difficilement lisible,
 
j'ai essayé la commande "echo -e $x" mais ça ne change rien,
 
je cherche donc à savoir si il existe un moyen de faire afficher le contenu de $x en respectant les sauts de ligne ?
 
merci


Message édité par Elbarto le 30-03-2010 à 00:57:19
mood
Publicité
Posté le 30-03-2010 à 00:52:51  profilanswer
 

n°1207762
o'gure
Modérateur
Multi grognon de B_L
Posté le 30-03-2010 à 08:13:08  profilanswer
 

J'ai exactement la même sortie via ls -ial qu'avec echo $x à savoir un listing bien ordonné.


---------------
Relax. Take a deep breath !
n°1207798
Fork Bomb
Obsédé textuel
Posté le 30-03-2010 à 10:11:40  profilanswer
 

Code :
  1. for LIST in "$(ls -ial)"; do echo "${LIST}"; done


Mais c'est un poil bourrin.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1207844
Elbarto
Posté le 30-03-2010 à 13:47:43  profilanswer
 

o'gure a écrit :

J'ai exactement la même sortie via ls -ial qu'avec echo $x à savoir un listing bien ordonné.

 

avec les sauts de lignes ?

 

moi j'ai pas de saut de lignes, tout est affiché à la suite, du coup le "ls -ial" est affiché sans les sauts de ligne ce qui rend la lecture difficile,

 

essaie de faire le "ls -ial" sur un repertoire où il y a beaucoup de fichiers, de le mettre dans une variable, tu verras alors qu'avec la commande echo ça va t'afficher le résultat sans le formatage d'où la lecture difficile,

 

le problème apparait avec Mandriva 2007.1 et la dernière version de Debian ( Lenny, ainsi que la version "sid" ),

 

le shell utilisé est le bash

Message cité 1 fois
Message édité par Elbarto le 30-03-2010 à 13:49:01
n°1207846
o'gure
Modérateur
Multi grognon de B_L
Posté le 30-03-2010 à 13:51:17  profilanswer
 

Elbarto a écrit :

essaie de faire le "ls -ial" sur un repertoire où il y a beaucoup de fichiers, de le mettre dans une variable, tu verras alors qu'avec la commande echo ça va t'afficher le résultat sans le formatage d'où la lecture difficile,


> pwd && x=$(ls -ial)
/usr/bin


> echo $x
...
1595928 -rwxr-xr-x  1 root   root     117K 19 févr. 21:45 nepomuk-rcgen*
1595462 -rwxr-xr-x  1 root   root     3,3K 10 déc.  13:00 nepomukserver*
1595477 -rwxr-xr-x  1 root   root      20K 10 déc.  13:00 nepomukservicestub*
1594829 -rwxr-xr-x  1 root   root      271  1 mars  20:52 neqn*
1594578 -rwxr-xr-x  1 root   root      69K 14 sept.  2009 netkit-ftp*
1595184 -rwxr-xr-x  1 root   root      27K 26 janv. 04:55 net-snmp-config*
1596446 -rwxr-xr-x  1 root   root      56K 18 déc.  16:19 network-admin*
1594933 -rwxr-xr-x  1 root   root       65  2 mars  21:36 nevow-xmlgettext*
1595214 lrwxrwxrwx  1 root   root       16 19 févr. 18:37 newaliases -> ../sbin/sendmail*
1594366 -rwsr-xr-x  1 root   root      24K 24 juil.  2009 newgrp*
1594676 -rwxr-xr-x  1 root   root      22K  4 mars  00:22 ngettext*
1596131 -rwxr-xr-x  1 root   root      20K  6 mars  14:23 nice*
...


Elbarto a écrit :

le problème apparait avec Mandriva 2007.1 et la dernière version de Debian ( Lenny, ainsi que la version "sid" ),
le shell utilisé est le bash


Zsh, il plante souvent ça  doit venir de là :/


---------------
Relax. Take a deep breath !
n°1207847
Elbarto
Posté le 30-03-2010 à 14:01:32  profilanswer
 

en tout cas avec bash la commande echo ne semble pas interpréter correctement les sauts de ligne contenus dans une variable, les sauts de ligne sont remplacés par des espaces vides,

 
Fork Bomb a écrit :

Code :
  1. for LIST in "$(ls -ial)"; do echo "${LIST}"; done


Mais c'est un poil bourrin.

 

ce script permet en effet de respecter les sauts de ligne, ça peut être une solution  :jap:


Message édité par Elbarto le 30-03-2010 à 14:02:02
n°1208135
Deadlock
Feck off, cup !
Posté le 31-03-2010 à 21:59:53  profilanswer
 

echo "$x" tout simplement ...


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
n°1208137
Elbarto
Posté le 31-03-2010 à 22:27:18  profilanswer
 

merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [SHELL] Rediriger le résultat d'une commande vers une variable ?

 

Sujets relatifs
[SHELL] Remplacer un chaine précise dans un fichierRecherche logiciel de montage audio en ligne de commande
[SHELL] Remplacer une valeur dans un fichierCommande tail
AIX - Lenteur de la commande sortbesoin d'aide avec la commande sed
Commande sftp pour se connecter à un ordinateur via un autrepb clavier suite à migration de Etch vers Lenny
[SHELL] Somme sur lignes différentes avec awkLinux commande changement partition
Plus de sujets relatifs à : [SHELL] Rediriger le résultat d'une commande vers une variable ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR