Bash - 以相同的方式传递参数

时间:2017-09-16 15:29:31

标签: bash

我的hg(mercurial)命令有一个bash别名,如下所示:

hg() {
  if [[ $1 == 'up' ]]; then
    if [[ $# == 2 ]]; then
      _update_bookmark $2
    else
      up
    fi
  else
    /bin/hg $@
  fi
}

我的问题是最终的else案例。我希望我在hg()中收到的论点与/bin/hg完全相同。当我执行类似hg commit -m "my message here"的操作时会出现问题,并且它会像/bin/hg commit -m my message here那样传递。我尝试了$@$* - 不确定哪个更合适,但似乎都没有。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

您需要编写"$@"(带双引号)以防止分词,同时仍然将已经分开的参数分开。