使用bash中的默认参数别名化函数

时间:2015-09-22 18:50:53

标签: bash parameters

我想为现有函数创建一个别名来传递一些参数。此外,别名应该能够获取原始函数的任何标志并正确解析它们。在我的具体情况下,我使用的是ag

使用zsh时,我只需添加.zshrc文件

即可
alias -g ag="ag --nogroup --smart-case"

如何在仅限bash的环境中获得相同的效果?代码

myfunc() {
    ag --nogroup --smart-case "$*"
}

alias ag=myfunc

适用于基本情况(即ag hello),但不接受ag hello --context 2

中的参数

2 个答案:

答案 0 :(得分:3)

使用正确的参数替换很重要。

ag() {
  command ag --nogroup --smart-case "$@"
}

答案 1 :(得分:0)

由于这种情况很简单(所有额外的参数都在最后),别名就足够了:

nanosleep

alias ag="ag --nogroup --smart-case" 选项对bash -g无效。