我想同时使用带有多个参数的 bash 别名和 bash 函数。我模拟 svn sub 命令。
$ svngrep -nr 'Foo' .
$ svn grep -nr 'Foo' .
我的期望是如下所示:
grep --exclude='*.svn-*' --exclude='entries' -nr 'Foo' .
但实际上,只有别名('svngrep')表现良好,函数('svn grep')会导致无效选项错误。如何编写我的 .bashrc?
#~/.bashrc
alias svngrep="grep --exclude='*.svn-*' --exclude='entries'"
svn() {
if [[ $1 == grep ]]
then
local remains=$(echo $@ | sed -e 's/grep//')
command "$svngrep $remains"
else
command svn "$@"
fi
}