proč držet xargs? bash by to zvládl dobře:
p=(`echo "param1 param2"`); echo ${p[0]} ${p[1]}
echo "'param 1' 'param 2'" | xargs -n1 | xargs [email protected] echo \[@\] \[@\]
(V mém shellu musím uniknout []
, váš počet najetých kilometrů se může lišit).
Pro ty, kteří to našli při vyhledávání, mi přijatá odpověď nefungovala.
echo "'param 1' 'param 2'" | xargs -n1 | xargs [email protected] echo \[@\] \[@\]
produkuje:
[param 1] [param 1]
[param 2] [param 2]
který nesplňuje požadavky dané původním posterem na to, aby byly xargy načteny ve více entitách, odděleny a odeslány do jediného příkazu ("echo" v OP) jako samostatné parametry. Xargs není určen pro tento druh úkolů!
Odpověď bash může fungovat.
p=(`echo "param1 param2"`); echo [${p[0]}] [${p[1]}]
produkuje:
[param1] [param2]
ale toto řešení nefunguje s více než jedním řádkem.
Správné řešení s bash pro odesílání párů řádků jako argumentů do jednoho příkazu je:
(echo 'param 1'; echo 'param 2'; echo 'param 3'; echo 'param 4') | while read line1; read line2; do echo "[$line1] [$line2]"; done
produkuje:
[param 1] [param 2]
[param 3] [param 4]
Odpověď GNU Parallel funguje, ale GNU Parallel musí být vytvořen a nainstalován. (Verze zabalená s Ubuntu není GNU Parallel.)