linux – 使用并行运行脚本而无需输入

linux – 使用并行运行脚本而无需输入,第1张

概述我正在尝试使用GNU parallel运行许多脚本实例,但脚本不带参数. 如果我只是执行’parallel foo.sh’,我得到这个: parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit. 假设您要运行十次,此语法将起作用: parall 我正在尝试使用GNU parallel运行许多脚本实例,但脚本不带参数.

如果我只是执行’parallel foo.sh’,我得到这个:

parallel: Warning: input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit.
解决方法 假设您要运行十次,此语法将起作用:
parallel -n0 foo.sh ::: {1..10}

parallel需要一个长度的输入序列(::: {1..10})并且你需要忽略输入序列的内容(-n0),你只关心它的长度.

您的原始命令:parallel foo.sh,不包含任何输入序列,以指示您想要多少并行度.隐秘的警告告诉你并行将开始收听终端输入序列,这可能不是你想要的.

这是教程示例:

seq 10 | parallel -n0 my_command my_args

这个怎么运作:

> parallel始终从某处获取输入序列.它可以是一个内联空格分隔的序列,前面带有::: OR来自文件或文件类源(如管道)的换行符分隔序列.在此示例中,输入序列来自管道.
> seq 10生成换行符分隔的数字序列,从1到10.
> -n0选项告诉parallel忽略输入序列中的值.我们关心的只是序列的长度,而不是它的内容.即使未使用数字,该命令仍将执行十次.

另一个例子:

parallel -n0 echo -n 'x' ::: {1..5}

这个怎么运作:

>输入序列是内联的.
> {1..5}生成一个以空格分隔的数字序列,从1到5.
> -n0忽略序列值(我们每次都会回显字符串’x’.)
>输出:xxxxx

相比于:

parallel echo -n ::: {1..5}

这个怎么运作:

>输入序列是内联的.> {1..5}生成一个以空格分隔的数字序列,从1到5.>输入序列中的每个值都用作echo的参数.订单无法保证.>输出:43215.可以是任何订单.

总结

以上是内存溢出为你收集整理的linux – 使用并行运行脚本而无需输入全部内容,希望文章能够帮你解决linux – 使用并行运行脚本而无需输入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1045255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存