Risposte:
Puoi usare xargs
, con il -t
flag xargs
sarà verboso e stampa i comandi che esegue:
./command1 | xargs -t -n1 command2
-n1
definisce gli argomenti massimi passati ad ogni chiamata di command2
. Questo eseguirà:
command2 word1
command2 word2
command2 word3
Se vuoi tutto come argomento di un call of command2
use che:
./command1 | xargs -t command2
Che chiama command2 con 3 argomenti:
command2 word1 word2 word3
Volete "sostituzione dei comandi", ovvero: incorporare l'output di un comando in un altro
command2 $(command1)
Tradizionalmente questo può anche essere fatto come:
command2 `command1`
ma questo utilizzo non è normalmente raccomandato, in quanto non è possibile nidificarli.
Per esempio:
test.sh:
#!/bin/bash
echo a b c
test2.sh
#!/bin/bash
echo $2
USO:
./test2.sh $(./test.sh)
b
ARG_MAX
? Ho uno scenario in cui sto passando i contenuti di un file a una funzione.