在 bash 中为具有默认参数的函数别名
Aliasing a function with default parameters in bash
我想为现有函数创建一个别名来传递一些参数。此外,别名应该能够获取原始函数的任何标志并正确解析它们。在我的具体情况下,我使用 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
中的参数
使用正确的参数替换很重要。
ag() {
command ag --nogroup --smart-case "$@"
}
由于这种情况很简单(所有额外的参数都放在最后)别名就足够了:
alias ag="ag --nogroup --smart-case"
-g
选项对 bash alias
无效。
我想为现有函数创建一个别名来传递一些参数。此外,别名应该能够获取原始函数的任何标志并正确解析它们。在我的具体情况下,我使用 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
使用正确的参数替换很重要。
ag() {
command ag --nogroup --smart-case "$@"
}
由于这种情况很简单(所有额外的参数都放在最后)别名就足够了:
alias ag="ag --nogroup --smart-case"
-g
选项对 bash alias
无效。