GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo pasar la salida del comando como varios argumentos a otro comando

Solución 1:

Puedes usar xargs , con el -t bandera xargs será detallado e imprimirá los comandos que ejecuta:

./command1 | xargs -t -n1 command2

-n1 define los argumentos máximos pasados ​​a cada llamada de command2 . Esto ejecutará:

command2 word1
command2 word2
command2 word3

Si quiere todo como argumento de una llamada de command2 usa eso:

./command1 | xargs -t command2

Eso llama a command2 con 3 argumentos:

command2 word1 word2 word3

Solución 2:

Desea 'sustitución de comando', es decir:incrustar la salida de un comando en otro

command2 $(command1)

Tradicionalmente, esto también se puede hacer como:

command2 `command1`

pero este uso normalmente no se recomienda, ya que no se pueden anidar.

Por ejemplo:

test.sh:
#!/bin/bash
echo a b c

prueba2.sh

#!/bin/bash
echo $2

UTILIZAR:

./test2.sh $(./test.sh)
b

Linux
  1. ¿Cómo pasar parámetros a un alias?

  2. ¿Cómo pasar la salida de un comando como argumento a otro?

  3. ¿Cómo agregar la salida a un archivo?

  4. Salida de comando de Linux como parámetro de otro comando

  5. ¿Cómo puedo pasar todos los argumentos con xargs en medio del comando en Linux?

Cómo usar el comando xargs de Linux

Cómo habilitar la marca de tiempo en la salida del comando de historial de Linux

Cómo redirigir la salida del comando de shell

Cómo pasar la contraseña al comando SSH en Linux

¿Cómo usar el comando xargs en Linux?

¿Cómo pasar argumentos a un script invocado por el comando fuente?