Solution 1 :
Vous pouvez utiliser xargs
, avec le -t
indicateur xargs
sera verbeux et imprime les commandes qu'il exécute :
./command1 | xargs -t -n1 command2
-n1
définit le nombre maximum d'arguments passés à chaque appel de command2
. Cela exécutera :
command2 word1
command2 word2
command2 word3
Si vous voulez tous comme argument d'un appel de command2
utilisez ça :
./command1 | xargs -t command2
Cela appelle command2 avec 3 arguments :
command2 word1 word2 word3
Solution 2 :
Vous voulez une "substitution de commande", c'est-à-dire :intégrer la sortie d'une commande dans une autre
command2 $(command1)
Traditionnellement, cela peut également être fait comme :
command2 `command1`
mais cette utilisation n'est normalement pas recommandée, car vous ne pouvez pas les imbriquer.
Par exemple :
test.sh:
#!/bin/bash
echo a b c
test2.sh
#!/bin/bash
echo $2
UTILISER :
./test2.sh $(./test.sh)
b