GNU/Linux >> Linux Esercitazione >  >> Linux

Come passare l'output del comando come diversi argomenti a un altro comando

Soluzione 1:

Puoi usare xargs , con il -t flag xargs sarà prolisso e stamperà i comandi che esegue:

./command1 | xargs -t -n1 command2

-n1 definisce il numero massimo di argomenti passati a ogni chiamata di command2 . Questo eseguirà:

command2 word1
command2 word2
command2 word3

Se vuoi tutto come argomento di una chiamata di command2 usa quello:

./command1 | xargs -t command2

Che chiama command2 con 3 argomenti:

command2 word1 word2 word3

Soluzione 2:

Vuoi la "sostituzione del comando", ovvero incorporare l'output di un comando in un altro

command2 $(command1)

Tradizionalmente questo può essere fatto anche come:

command2 `command1`

ma questo utilizzo non è normalmente consigliato, in quanto non è possibile nidificarli.

Ad esempio:

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

prova2.sh

#!/bin/bash
echo $2

UTILIZZO:

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

Linux
  1. Come passare i parametri a un alias?

  2. Come aggiungere l'output a un file?

  3. Output del comando Linux come parametro di un altro comando

  4. Come posso passare tutti gli argomenti con xargs nel mezzo del comando in Linux

  5. Come passare argomenti a uno script richiamato dal comando source?

Come utilizzare il comando xargs di Linux

Come abilitare il timestamp nell'output del comando della cronologia di Linux

Come reindirizzare l'output del comando della shell

Come passare la password al comando SSH in Linux

Come usare il comando xargs in Linux?

bash:come passare argomenti della riga di comando contenenti caratteri speciali