Я хочу использовать как bash-псевдоним, так и функцию bash с несколькими аргументами. Я эмулирую подкоманды svn.Bash-псевдоним и функция bash с несколькими аргументами
$ svngrep -nr 'Foo' .
$ svn grep -nr 'Foo' .
Я ожидаю, как действовать, как показано ниже:
grep --exclude='*.svn-*' --exclude='entries' -nr 'Foo' .
Но актуальна, только псевдоним ('svngrep') делает хорошо, функция ('СВН Grep') вызывает ошибку недопустимый вариант. Как написать мой .bashrc?
#~/.bashrc
alias svngrep="grep --exclude='*.svn-*' --exclude='entries'"
svn() {
if [[ $1 == grep ]]
then
local remains=$(echo [email protected] | sed -e 's/grep//')
command "$svngrep $remains"
else
command svn "[email protected]"
fi
}
См. [BashFAQ/050] (http://mywiki.wooledge.org/BashFAQ/050), [Цитаты] (http://mywiki.wooledge.org/Quotes) и [Специальные параметры] (http: //mywiki.wooledge.org/BashSheet#Special_Parameters). –
Это будет очень хрупким; прочитайте ссылки Dennis, а затем используйте решение @ glenn. –
Спасибо, я понимаю уловки между $ * и $ @. И я должен использовать doublequated $ @, как «$ @». – sanemat