Как сделать это & ​​ldquo; svngrep & rdquo; alias работает над & ldquo; .bash_aliases & rdquo ;?

Я добавил следующую строку в файл «~ / .bash_aliases»:

alias svngrep='grep -R $1 ./* --exclude-dir ".svn"'

, но он не работает.

Он выводит (в моем переводе на английский):

svngrep test
grep: test: File or directory not found

Но с полной строкой «grep» она работает отлично.

Любая идея, что не так с моим псевдонимом?

1
задан 17 September 2012 в 19:10

1 ответ

Вам не нужна функция bash (вы можете использовать ее, хотя дело вкуса), просто удалите $1 ./* из вашего примера и назовите его следующим образом:

alias svngrep='grep -R --exclude-dir ".svn"'
svngrep phrase .

или здесь пример, который я использовал в течение нескольких месяцев:

alias rg='rgrep --exclude-dir=.svn --exclude=*.pyc'
rg phrase .

Конечно, вы можете заменить . на любой каталог. Я бы сказал, что использование псевдонимов более интуитивно понятное, псевдоним - это псевдоним, функция может делать все.

0
ответ дан 25 May 2018 в 06:25
  • 1
    В принципе да, но нет оснований предпочитать псевдоним над функцией. Функции не длиннее (вместо = " вам нужно ввести {;}), но они более гибкие и могут принимать аргументы. – January 17 September 2012 в 21:08

Другие вопросы по тегам:

Похожие вопросы: