并行:如何从一个函数引用多个参数

高加索人马来西亚人

我有这个函数,我需要它使用GNU parallel从一个函数中引用多个参数。

foo () {

    cd ${HOME}/sh/xxx/xxx/xxx/folder_with_scripts
    bash -H $1 #replace with echo in test run {echo $1 is being echoed}
    bash -H $2 #replace with echo in test run {echo $2 is being echoed}
}

export -f foo
parallel foo ::: *script.sh bash*.sh

folder_with_scripts内容

$ ls
firstscript.sh
secondscript.sh
thirdscript.sh
bashhim.sh
bashscript.sh
bashher.sh

parallel foo基本上*script.sh通过将内部脚本作为参数引用来执行内部内部的所有脚本foo哪个是$1我想做的是通过使用使其也执行bash*.sh*folders_with_scripts目录$2

根据man parallel,语法为:

 parallel [options] [command [arguments]] ( ::: arguments | :::: argfile(s) )

由于::: arguments是复数形式,所以我认为这是很有可能的。

结果

为了方便起见,我将替换bashecho

$ ./foo.sh
firstscript.sh is being echoed
secondscript.sh is being echoed
thirdscript.sh is being echoed
              is being echoed
              is being echoed
              is being echoed

想要的结果

firstscript.sh is being echoed
secondscript.sh is being echoed
thirdscript.sh is being echoed
bashhim.sh is being echoed
bashscript.sh is being echoed
bashher.sh is being echoed

就我而言,parallel foo ::: *.sh不会削减。

交换的位置$1*script.sh不会削减它

奥莱·丹吉(Ole Tange)

您的问题不包含MVCE https://stackoverflow.com/help/mcve特别是我无法直接在系统上运行您的代码。因此,此答案基于我对我认为您正在尝试执行的操作的最佳猜测。

假设您要bash*.sh为每个运行全部*script.sh

parallel foo ::: *script.sh ::: bash*.sh

如果每个bash*.sh都链接到*script.sh:::+在20160422版本中引入):

parallel foo ::: *script.sh :::+ bash*.sh

使用以下命令进行测试--dry-run

parallel --dry-run foo ::: *script.sh ::: bash*.sh
parallel --dry-run foo ::: *script.sh :::+ bash*.sh

如果这不能回答您的问题,请使用您要运行GNU Parallel的命令来更新问题,例如:

foo firstscript.sh bashhim.sh
foo secondscript.sh thirdscript.sh
foo bashscript.sh bashher.sh

echo *script.sh bash*.sh在您运行的目录中显示的输出parallel

后面的数据:::称为输入源。与输入源处理被覆盖在第4章https://zenodo.org/record/1146014印刷(:http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product- 23558902.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从一个函数返回多个类型?

并行化具有多个参数但在其中一个参数上的函数

如何停止Kotlin从一个带有可选参数的Kotlin函数中创建多个重载Java方法

C++ 如何将引用从一个函数传递到另一个函数?

如何从一个数据引用中查找多个最大值?

如何在PowerShell中将参数从一个函数转发到另一个函数

如何在Go中将可变参数从一个函数传递给另一个函数

如何将参数从一个函数发送到另一个函数

如何将lambda从一个函数传递给另一个函数作为参数?

如何在bash脚本中将参数从一个函数传递到另一个函数?

如何将参数从一个函数传递到另一个函数

如何使用JavaScript将参数从一个函数传递到另一个函数

如何使用参数将一个函数从一个结构传递到另一个结构中的另一个函数

多个(具有一个固定的)GNU并行参数

如何将引用从一个对象内部传递到另一个对象的构造函数

如何在 python 中以相同的参数并行运行一个函数?

如何在颤振中将多个参数从一个页面传递到另一个页面

如何引用一个函数的参数中已经引用的全局变量?

如何与多个参数的方法获取传递给一个函数,一个列表?

如何用一个变量为多个参数值绘制一个函数?

如何从一个参数函数中访问Vue的实例?

如何从一个函数中选择多个值到单独的列中?

如何将多个变量从一个函数移到全局范围?

如何从一个返回多个值的函数中赋值?

如何从一个js函数创建多个折线图

如何从一个函数返回多个列表,并保留其名称?

我如何从一个类函数返回多个数据帧?

如何在打字稿中将参数从一个具有可变参数的函数传递到另一个具有可变参数的函数?

如何将参数从一个函数传递到另一个函数,但在php中的同一个类中