我正在尝试使用xargs并行调用一个更复杂的函数。
#!/bin/bash
echo_var(){
echo $1
return 0
}
seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {}
exit 0
这将返回错误
xargs: echo_var: No such file or directory
任何有关如何使用xargs来完成此操作的想法,或者任何其他解决方案都将受到欢迎。
2
user1148366危险,危险!不要使用bash进行并行编程-您会遇到很多问题。使用C / C ++和pthreads或Java线程,或任何使您对自己的工作进行漫长而费力思考的事情,因为并行编程需要很多思想才能正确。
—
David Souther 2012年
@DavidSouther如果任务是独立的,例如将所有这些图片文件转换为png,请不要担心。只有当您拥有同步(超出了等待所有时间)和通信时,它才会变得混乱。
—
ctrl-alt-delor 2014年
@DavidSouther-我是Java开发人员很长时间了,最近我一直在从事常规工作。我继续告诉人们:朋友不要让朋友写bash脚本。但是,我发现自己正在查看此帖子/解决方案,因为(悲伤的表情:()我正在bash中从事并行处理。我可以很容易地在groovy / java中进行它。糟糕!
—
Christian Bongiorno