Pipe, argument, liste => Prise de tête :)
Résolu
gunbol
Messages postés
52
Statut
Membre
-
gunbol Messages postés 52 Statut Membre -
gunbol Messages postés 52 Statut Membre -
Bonjour,
J'ai une question toute bête:
J'ai une commande qui renvoie une liste avec des retours à la ligne
Example
./genere_liste
renvoie:
4560
45
5457
1042
J'ai une autre commande qui permet d'analyser chaque element un par un, mais il ne sait pas prendre une liste en STDIN
./commande 4560 => Ca marche
./genere_liste | ./commande => Ca marche pas
Ma question est la suivante: comment on fait pour rediriger une liste dans une commande afin qu'il exécute la commande en boucle.
Contrainte: il faut que cela tienne en une seule ligne de commande.
Merci d'avance pour votre aide.
Cordialement,
gunt
J'ai une question toute bête:
J'ai une commande qui renvoie une liste avec des retours à la ligne
Example
./genere_liste
renvoie:
4560
45
5457
1042
J'ai une autre commande qui permet d'analyser chaque element un par un, mais il ne sait pas prendre une liste en STDIN
./commande 4560 => Ca marche
./genere_liste | ./commande => Ca marche pas
Ma question est la suivante: comment on fait pour rediriger une liste dans une commande afin qu'il exécute la commande en boucle.
Contrainte: il faut que cela tienne en une seule ligne de commande.
Merci d'avance pour votre aide.
Cordialement,
gunt
Configuration: Windows XP Internet Explorer 6.0
6 réponses
-
Salut,
commande contient quoi?
-
Justement, je voudrais un truc qui marche à tous les coups :)
Dans mon cas, c'est un pmap
La liste contient des PID
mais ca pourrait etre un print, un lsof -p ou autre chose -
Re,
Oui mais il faut que tu utilise un argument
par exemple un fichier script.sh#!/bin/bash echo $1
Et tu faisfor i in $(././genere_liste);do ./script.sh $i;done
--
106485010510997108 -
Salut,
Et un truc du genre :while read line do ./commande "${line}" done < <(./genere_liste)Ça le fait pas ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
hello
et avec xargs
./genere_liste | xargs -L 1 ./commande
$ cat f1
#!/bin/bash
echo ++ $1 ++
$ seq 1 10 | xargs -L 1 ./f1
++ 1 ++
++ 2 ++
++ 3 ++
++ 4 ++
++ 5 ++
++ 6 ++
++ 7 ++
++ 8 ++
++ 9 ++
++ 10 ++
$ -
Hello,
la commande xargs est exactement celle dont j'avais besoin :)
J'avais dit que ma question était bête !
Merci beaucoup à tout le monde.
Gunth