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