Для тех, кто находит это из поиска, принятый ответ не работает для меня.
echo "'param 1' 'param 2'" | xargs -n1 | xargs -I@ echo \[@\] \[@\]
производит:
[param 1] [param 1]
[param 2] [param 2]
, который не соответствует требованиям, предъявляемым исходным постером, для чтения xargs в нескольких объектах, их разделения и отправки в одну команду («echo» в OP) в качестве отдельных параметров. Xargs не предназначен для такого рода задач!
1011 *
*
Ответ bash может работать.
p=(`echo "param1 param2"`); echo [${p[0]}] [${p[1]}]
производит:
[param1] [param2]
но это решение не работает с более чем одной строкой.
Правильное решение с использованием bash для отправки пар строк в качестве аргументов одной команде:
(echo 'param 1'; echo 'param 2'; echo 'param 3'; echo 'param 4') | while read line1; read line2; do echo "[$line1] [$line2]"; done
производит:
[param 1] [param 2]
[param 3] [param 4]
GNU Parallel ответ работает, но GNU Parallel должен быть make'd и установлен. (Версия, поставляемая с Ubuntu, не является GNU Parallel.)