Почему MSYS grep не берет параметры из переменной?
Чтобы установить параметры по умолчанию для 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 ответа
Пытаться
export GREP_OPTIONS='- exclude ="*. {o, obj, pyc}" --exclude-dir = {. git, _Output}'
то есть, заключая в себе --exclude
шаблон имени файла в (двойных) кавычках.
Попробуйте поместить переменные в.profile вместе со строкой, которая говорит что-то вроде следующего:
alias grep='grep $GREP_OPTIONS'
Это только может исправить это.