Réponses:
Vous pouvez utiliser xargs
, avec le -t
drapeau xargs
sera verbeux et imprime les commandes qu'il exécute:
./command1 | xargs -t -n1 command2
-n1
définit le maximum d'arguments transmis à chaque appel de command2
. Cela exécutera:
command2 word1
command2 word2
command2 word3
Si vous voulez tous comme argument d'un seul appel d' command2
utilisation:
./command1 | xargs -t command2
Cela appelle command2 avec 3 arguments:
command2 word1 word2 word3
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 se faire comme suit:
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
UTILISATION:
./test2.sh $(./test.sh)
b
ARG_MAX
? J'ai un scénario où je passe le contenu d'un fichier à une fonction.