Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Redirection de sortie

carric, le mercredi 1 septembre 2004 à 12:05:07
Salut a tous,

voila dans un script bash schell, je souahite rediriger (recuperer) la reponse d'une commande dans une variable et non pas dans un fichier .
pour le moment j'ai : ls *.tar > LISTE

Le problème est que la réponse ce trouve dans un fichier nommé LISTE et ce qu'i m'interesse est de recuperer cette liste dans une variable pour faire différent traitement de ces fichier.

Merci d'avance
Répondre à carric  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
nob, le mercredi 1 septembre 2004 à 13:08:17
commande > file
for i in cat file
do
variable($compteur)=$i
((compteur=compteur+1))
done

tu as alors un tableau avec chaque ligne de ton fichier

variable(5) = ta 5eme ligne

sinon meme principe

for i in cat file
do
commandes utilisant la valeur de $i
done

(ksh) en bash il y a peut etre des differences de syntaxes.
Répondre à nob

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
nebulus, le mercredi 1 septembre 2004 à 13:51:33
y'a aussi moyen de ne pas passer par une redirection dans un fichier en utilisant des backquotes :

for i in ‘ls *.tar‘
...

ça marche aussi dans une variable :
liste = ‘ls *.tar‘
echo $liste

Hardware: The parts of a computer system that can be kicked
Répondre à nebulus

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
carric, le mercredi 1 septembre 2004 à 14:15:59
merci beaucoup
je ve essayer les deux solutions.

@ Bientot
Répondre à carric

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
asevere, le mercredi 1 septembre 2004 à 19:47:24
Salut,

Bon ces solutions fonctionnent, mais elles restent gourmande (sauf la derniere) pour quelque chose qui au final, se simplifie grandement avec une petite astuce.
Pour commencer, mettre le resultat d'une commande dans une variable peut se faire de deux façons.
var=`commande`  //guillemets inverses pour cenrner l'expression (AltGr+7)
var=$(commande) 
Chacun utilise celle qui lui plait, la seconde reste plus lisible à mon gout :)
Le probleme de cette affectation, c'est que si la commande renvoie plusieures informations (des champs, des lignes, etc.) il n'y aura qu'une seule variable contenant toute ces données.
Il serait plus logique d'avoir un tableau dans ces cas là.

En entourant tout l'expression par des parentheses, la variable sera automatiquement du type tableau:
var=($(commande))
Dans ce cas, Bahs utilise la variable IFS (Internale Field Separator) pour séparer les differents éléments (espace, tabulation, etc.)
Comme dans ton cas, ce sont des lignes que tu souhaites récupérer, il faut mettre '\n' (retour chariot) comme unique séparateur de champ.
IFS=$'\n'
Donc il suffit de deux lignes avant le traitement dans ton script:
IFS=$'\n'
liste=($(ls *.tar))
Voilà, cest une methode de plus, mais qui simplifie pas mal le script :)

@++
 ♫ Il suffirait de presque rien...
Répondre à asevere

5


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
 carric, le jeudi 2 septembre 2004 à 07:50:16
Merci asevere je ve aussi essayer ta solution
Répondre à carric

Résultats pour redirection de sortie

Redirection sortie > presse-papier en console (Résolu) Salut à tous. J'aurai aimé savoir s'il était possible d'envoyer la sortie d'une commande directement dans le presse-papier ! Par exemple, comment envoyer le résultat de la commande : cat /etc/fstab > "Presse-papier" directement... www.commentcamarche.net/forum/affich-669027-redirection-sortie-presse-papier-en-console
[linux] Redirection de la sortie standard (Résolu) Bonjour, Je voudrais rediriger la sortie standard d'un programme vers un fichier tout en l'affichant sur la sortie standard. Comment faire? remarque : La solution "mon_prog >> mon_fichier | cat mon_fichier" n'est pas envisageable (je... www.commentcamarche.net/forum/affich-2370106-linux-redirection-de-la-sortie-standard
[Shell Unix] Redirection et sortie standard (Résolu) Bonjour, J'ai créé des shells qui redirigent leurs actions sur un fichier log de cette façon: action 1 > $LOGFILE action 2 >> $LOG_FILETout marche parfaitememt mais j'aimerais également voir s'afficher les actions sur ma sortie... www.commentcamarche.net/forum/affich-2681931-shell-unix-redirection-et-sortie-standard

Résultats pour redirection de sortie

[Webmaster] Faire une redirectionLes différentes solutions sont présentées de la meilleure (.htaccess) à la moins bonne (JavaScript). Un .htaccess Le .htaccess est à placer dans le répertoire qui doit être redirigé. On applique une redirection de cette façon : RedirectPermanent... www.commentcamarche.net/faq/sujet-4640-webmaster-faire-une-redirection

Résultats pour redirection de sortie

Comment rediriger la sortie standard (Résolu)Bonjour, Bon c'est un peu plus compliqué que ça en a l'aire, car je connais les principes d'entrée sortie standard : 1 entrée standard (ex :clavier) > prog.sh 1> sortie standard (ex: écran) 2> sortie standard des erreurs (le plus... www.commentcamarche.net/forum/affich-7358491-comment-rediriger-la-sortie-standard
[HELP]por maping/forwarding mai port différen (Résolu)voila mon problème... avec mon routeur linksys je peux facilmnt faire une redirection de ports cependant les ports d'entrée et de sortie sont par defaut identique... imaginons ke j'accede a ma passrelle (routeur) via le web par le port 8080... www.commentcamarche.net/forum/affich-2864284-help-por-maping-forwarding-mai-port-differen

Résultats pour redirection de sortie

Le jeu vidéo "Resident Evil 5" sortira le 13 mars 2009 en Europe(Paris - Relax news) - Le cinquième volet de la saga Resident Evil sortira le 13 mars 2009 en Europe et aux Etats-Unis, a annoncé l'éditeur Capcom lors de l'Electronic Entertainment Expo (E3) de Los Angeles. A sortir sur Xbox 360 et Playstation 3, ce... www.commentcamarche.net/actualites/le-jeu-video-resident-evil-5-sortira-le-13-mars-2009-en-europe-5847050-actualite.php3
Apple retarde la sortie de l'iPod Touch(Paris - Relaxnews) - L'iPod Touch n'est pas sorti en magasin au mois de septembre comme il était initialement prévu. Quelques soucis techniques liés à l'écran de l'appareil ont obligé Apple à repousser de quelques jours la livraison du baladeur à... www.commentcamarche.net/actualites/apple-retarde-la-sortie-de-l-ipod-touch-3691122-actualite.php3
"Fallout 3" sortira le 31 octobre en France(Paris - Relax news) - L'éditeur Bethesda vient de dévoiler la date de sortie de Fallout 3, le jeu vidéo le plus attendu de cet automne suite à sa forte impression laissée à l'E3 de Los Angeles le mois dernier. Le 3ème opus de la série sera... www.commentcamarche.net/actualites/fallout-3-sortira-le-31-octobre-en-france-5847216-actualite.php3

Résultats pour redirection de sortie

Perl - Entrée et sortie standardsQu'appelle-t-on entrée standard et sortie standard ? Perl permet d'écrire sur la sortie standard, appelée STDOUT et de lire sur l'entrée standard (STDIN). Il s'agit de deux descripteurs fournis par le système d'exploitation et permettant... www.commentcamarche.net/contents/perl/perles.php3