例子:
list="a b c d e"; echo $list |xargs -n1 -I{} echo begin {} end
在Mac上执行结果:
begin a end
begin b end
begin c end
begin d end
begin e end
在Linux上执行结果:
begin a b c d e end
我这里的需求是有一堆输入,要分别以其为参数,执行一些命令,无论是否成功都要对所
有目标执行,所以
1 “一些命令”我选用shell function来实现,在其中读了$1作为本次处理的目标
2 “所有目标”我选用xargs;如果选Parallel还得额外安装
结果发现xargs在切分“以空格为分隔符”的字符串的时候,GNU版本默认不切分,结果把
整个“含空格分隔符的字符串”传给函数,执行了一次,而函数里又选了$1作为本次执行
目标,其综合结果就是只对列表中第一个目标执行了一遍
更惨的是我对比的时候是在Mac上做的对比,怎么看怎么顺眼……
--
修改:JulyClyde FROM 222.71.112.*
FROM 222.71.112.*