微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在bash / linux中并行运行shell脚本

我有一个shell脚本job.sh.

内容如下:

#!/bin/bash

table=$1

sqoop job --exec ${table}

现在当我做./job.sh table1

该脚本成功执行.

我在表tables.txt文件中有表名.

现在我想循环遍历tables.txt文件并并行执行job.sh脚本10次.

我怎样才能做到这一点?

理想情况下,当我执行脚本时,我希望它在下面执行;

./job.sh table1
./job.sh table2
./job.sh table3
./job.sh table4
./job.sh table5
./job.sh table6
./job.sh table7
./job.sh table8
./job.sh table9
./job.sh table10

有哪些选择?

解决方法:

你可以这样做

< tables.txt xargs -I% -n1 -P10 echo sqoop job --exec %

-P10将并行运行10个进程.而你甚至不需要帮助脚本.

正如@CharlesDuffy评论的那样,你不需要-I,例如:更简单:

< tables.txt xargs -n1 -P10 echo sqoop job --exec

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐