2

我有一个数组“foo”。我想将数组传递给自定义函数“bar”,它是 xargs 命令的一部分。我需要一些时间才能弄清楚如何在 xargs 中调用用户定义的函数。为此,我导出函数“bar”并使用“bash -c”来执行它。但是 $foo 不能传递给 bar()。bar() 中的 $1 为空。

有谁知道如何解决这个问题?

谢谢!!

foo="1 2 3 4 5 6 7 8 9"

bar(){
   echo $1
   echo "asdf"
   sleep 2
}

export -f bar

echo $foo | xargs -n 1 -P 3 bash -c bar
4

1 回答 1

1

我希望一个新的 shell 启动 viabash -c无法访问您的功能我希望它仅可用于以()or$()或开头的子shell ``

如果你想让一个新启动的shell有这个功能,也许把这个功能存储在一个文件中,然后用来--rcfile foo直接加载这个功能?或者,将其重写为脚本文件?(由于每次执行bash -c已经是一个新的fork()/exec()对,它还不如直接运行你的脚本。)

于 2012-07-27T01:29:24.540 回答