加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用gnu parallel运行bash脚本

发布时间:2020-12-15 21:48:56 所属栏目:安全 来源:网络整理
导读:我有我的脚本使用读取时逐行处理一些文件.. 当我做: head -n5 file1 | ./myscript.sh 我的结果很好. 但尝试使用gnu parallel并行化它: head -n5 file1 | parallel -j 4 ./myscript.sh 结果文件空了!? 我也尝试过: parallel -j 4 -a file1 ./myscript.sh
我有我的脚本使用读取时逐行处理一些文件..

当我做:

head -n5 file1 | ./myscript.sh

我的结果很好.

但尝试使用gnu parallel并行化它:

head -n5 file1 | parallel -j 4 ./myscript.sh

结果文件空了!?

我也尝试过:

parallel -j 4 -a file1 ./myscript.sh

但仍然无法正常工作.我试图做与他们所说的相似的事情
文档,但没有任何成功.
我究竟做错了什么?

编辑:

也许这可以帮助:

head -n5 file1 | parallel -a - -j 4 echo #this works
head -n5 file1 | parallel -a - -j 4 ./myscript #this doesn't

解决方法

parallel不会将输入行发送到给定命令的stdin,而是将该行附加到您给出的命令.

如果你像你一样写它,那么你实际上是在调用./myscript.sh< INPUT>,你要调用./myscript.sh,并将输入作为stdin发送.

这应该工作:

head -n5 file1 | parallel -j 4 "echo {} | ./myscript.sh"

{}表示要平行输入的位置,而不是最后的默认值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读