前端之家收集整理的这篇文章主要介绍了
在bash脚本中使用xargs调用函数,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用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来完成这个任何想法,或任何其他解决方案将受到欢迎。
谢谢!
导出
函数应该做(未测试):
export -f echo_var
seq -f "n%04g" 1 100 | xargs -n 1 -P 10 -I {} bash -c 'echo_var "$@"' _ {}
您可以使用内置printf而不是外部seq:
printf "n%04g\n" {1..100} | xargs -n 1 -P 10 -I {} bash -c 'echo_var "$@"' _ {}
此外,使用返回0和退出0,掩盖任何可能由其前面的命令产生的错误值。此外,如果没有错误,它是默认的,因此有点多余。