2

Чтобы установить параметры по умолчанию для grep (из MSYS в Win7), чтобы игнорировать объектные файлы и определенные каталоги, я экспортировал GREP_OPTIONS в ~/.profile следующим образом:

export GREP_OPTIONS='--exclude=*.{o,obj,pyc} --exclude-dir={.git,_Output}'
export GREP_COLOR='1;32'

Даже после перезапуска оболочки, чтобы мой .profile вступил в силу, мой вызов grep все еще ищет объектные файлы. Однако переменная GREP_COLOR похоже, работает. Я даже пытался явно установить мои параметры в той же оболочке перед выполнением grep:

$ grep --version
GNU grep 2.5.4

Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ export GREP_OPTIONS='--exclude=*.{o,obj,pyc} --exclude-dir={.git,_Output}'
$ echo $GREP_OPTIONS
--exclude=*.{o,obj,pyc} --exclude-dir={.git,_Output}
$ grep $GREP_OPTIONS -r foo .
grep: ./bar.o: Permission denied
./baz.c:My foo text
$ grep --exclude=*.{o,obj,pyc} --exclude-dir={.git,_Output} -r foo .
./baz.c:My foo text

Как заставить grep автоматически использовать GREP_OPTIONS из ~/.profile?

2 ответа2

0

Пытаться

export GREP_OPTIONS='--exclude="*.{o,obj,pyc}" --exclude-dir={.git,_Output}'

т. е. заключать шаблон имени файла --exclude в (двойные) кавычки.

0

Попробуйте поместить переменные в .profile вместе со строкой, которая говорит что-то вроде следующего:

alias grep='grep $GREP_OPTIONS'

Это только может исправить это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .