在bash脚本中使用xargs调用函数

前端之家收集整理的这篇文章主要介绍了在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,掩盖任何可能由其前面的命令产生的错误值。此外,如果没有错误,它是默认的,因此有点多余。

猜你在找的Bash相关文章