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

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

发布时间:2020-12-13 18:34:45 所属栏目:Linux 来源:网络整理
导读:我正在尝试使用GNU parallel运行许多脚本实例,但脚本不带参数. 如果我只是执行’parallel foo.sh’,我得到这个: parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit. 解决方法 假设您要运行十次,
我正在尝试使用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.可以是任何订单.

(编辑:李大同)

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

    推荐文章
      热点阅读