warum xargs kleben? bash könnte damit gut umgehen:
p=(`echo "param1 param2"`); echo ${p[0]} ${p[1]}
echo "'param 1' 'param 2'" | xargs -n1 | xargs [email protected] echo \[@\] \[@\]
(In meiner Shell muss ich []
entkommen , Ihr Kilometerstand kann variieren).
Für diejenigen, die dies über eine Suche finden, die akzeptierte Antwort hat bei mir nicht funktioniert.
echo "'param 1' 'param 2'" | xargs -n1 | xargs [email protected] echo \[@\] \[@\]
produziert:
[param 1] [param 1]
[param 2] [param 2]
was nicht den Anforderungen des ursprünglichen Posters entspricht, xargs in mehrere Entitäten einzulesen, sie zu trennen und sie als separate Parameter an einen einzigen Befehl ("echo" im OP) zu senden. Xargs ist für diese Art von Aufgabe nicht ausgelegt!
Die Bash-Antwort kann funktionieren.
p=(`echo "param1 param2"`); echo [${p[0]}] [${p[1]}]
produziert:
[param1] [param2]
aber diese Lösung funktioniert nicht mit mehr als einer Zeile.
Eine korrekte Lösung mit Bash zum Senden von Zeilenpaaren als Argumente an einen einzelnen Befehl ist:
(echo 'param 1'; echo 'param 2'; echo 'param 3'; echo 'param 4') | while read line1; read line2; do echo "[$line1] [$line2]"; done
produziert:
[param 1] [param 2]
[param 3] [param 4]
Die Antwort von GNU Parallel funktioniert, aber GNU Parallel muss erstellt und installiert werden. (Die mit Ubuntu gepackte Version ist nicht GNU Parallel.)