GNU/Linux >> Tutoriels Linux >  >> Linux

Comment passer la sortie de la commande sous forme de plusieurs arguments à une autre commande

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

Linux
  1. Comment passer des paramètres à un alias ?

  2. Comment ajouter la sortie à un fichier ?

  3. Comment puis-je passer tous les arguments avec xargs au milieu de la commande sous Linux

  4. Comment diriger la sortie de grep vers cp?

  5. Comment passer la sortie de la commande sous forme d'arguments multiples à une autre commande

Comment utiliser la commande Linux xargs

Comment activer l'horodatage dans la sortie de la commande d'historique Linux

Comment rediriger la sortie de la commande shell

Comment transmettre un mot de passe à la commande SSH sous Linux

Comment utiliser la commande xargs sous Linux ?

bash :comment passer des arguments de ligne de commande contenant des caractères spéciaux