複数の引数を指定して、bash エイリアスと bash 関数の両方を使用したいと考えています。svn サブコマンドをエミュレートします。
$ 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
}