使用分隔符将zsh函数的参数连接起来,然后将这些参数作为参数传递给命令

时间:2016-05-19 21:15:42

标签: arguments parameter-passing command-line-arguments zsh

假设我有一个如下调用的zsh函数:

myFunction arg1 arg2 arg3 ...

我基本上希望myFunction()做以下事情:

myFunction () {
  some-program prefix:arg1 or prefix:arg2 or prefix:arg3 ...
}

这就是我尝试这样做的方式:

myFunction () {
  local args="prefix:${1}"
  shift
  for arg; do
    args+=" or prefix:${arg}"
  done

  some-program $args
}

当我调用此函数时,some-program没有按预期工作,我的理解是因为它将$args解释为单个参数而不是许多单独的参数参数。如何将$args给出的字符串解释为几个单独的参数?

0 个答案:

没有答案