bash - 将函数从 zsh 导出到 bash 以便在 gnu parallel 中使用

标签 bash parallel-processing zsh gnu-parallel

如何从 zsh 导出一个函数,以便我可以在 gnu 中并行使用它?

例子:

function my_func(){ echo $1;}
export -f my_func
parallel "my_func {}" :::  1 2

在bash中会输出

1
2

而在 zsh 中它会输出错误信息

/bin/bash: my_func: command not found
/bin/bash: my_func: command not found

最佳答案

zsh 没有导出函数的概念。 export -f somefunc 将打印函数定义,它不会导出函数。

相反,您可以依赖 bash 函数导出为以 () 开头的常规变量这一事实:

export my_func='() { echo "$1"; }'
parallel --gnu "my_func {}" ::: 1 2 

关于bash - 将函数从 zsh 导出到 bash 以便在 gnu parallel 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738425/

相关文章:

c# - 使用 Parallel.Foreach 中的 ParallelOptions 在串行和并行操作之间切换

timezone - 'US/Eastern' 和 'US/Central' 和 'US/Pacific' 是否不推荐用于 strftime 或只是 PHP?

c++ - 将 NS3 返回/退出代码(通过 waf)捕获为 Bash 脚本中的变量

bash - 即使使用 package-lock.json,也可以使用制表符补全将 package 扩展为 package.json

linux - bash 脚本中的 SSH 仍然提示密码,而命令行上的 ssh 使用 key 进行身份验证

r - 如何避免使用 foreach 复制对象

c - pgcc,C - 循环未并行化 : may not be beneficial

庆典,zsh : declare [*] (oh my)

zsh - 如何修复 oh-my-zsh 插件无法工作的问题

bash - Shell 命令 SET -X 在脚本中的意思