Lösung 1:
Sie können xargs
verwenden , mit dem -t
Flag xargs
wird ausführlich sein und die Befehle ausgeben, die es ausführt:
./command1 | xargs -t -n1 command2
-n1
definiert die maximalen Argumente, die jedem Aufruf von command2
übergeben werden . Dies wird ausgeführt:
command2 word1
command2 word2
command2 word3
Wenn Sie alle als Argument eines Aufrufs von command2
wollen benutze das:
./command1 | xargs -t command2
Das ruft command2 mit 3 Argumenten auf:
command2 word1 word2 word3
Lösung 2:
Sie möchten eine 'Befehlsersetzung', d.h. die Ausgabe eines Befehls in einen anderen einbetten
command2 $(command1)
Traditionell kann dies auch so gemacht werden:
command2 `command1`
aber diese Verwendung wird normalerweise nicht empfohlen, da Sie sie nicht verschachteln können.
Zum Beispiel:
test.sh:
#!/bin/bash
echo a b c
test2.sh
#!/bin/bash
echo $2
VERWENDUNG:
./test2.sh $(./test.sh)
b