Причина, по которой переменная GREP_OPTIONS
устарела, заключается в том, что она имеет тенденцию вызывать проблемы, когда где-то в сценарии вызывается grep
, и сценарий не работает с альтернативными параметрами, которые появляются из переменной. Если вы напишете сценарий оболочки для grep
, то у вас будет та же проблема, , если вы не дадите ему другое имя .
$ cat ~/bin/cgrep
#!/bin/sh
exec grep --color=always "$@"
$ find … -exec cgrep … {} +
Или сохраните ваши любимые опции в переменной. В оболочках, отличных от zsh, это громоздко, если параметры содержат символы подстановки ( \ [*?
), но в противном случае вы можете просто использовать переменную без кавычек, чтобы получить команду с аргументами.
cgrep=(grep --color=always)
find … -exec $cgrep … {} +
Обратите внимание, что GNU и BSD grep могут рекурсивно обрабатывать дерево каталогов, что в большинстве случаев устраняет необходимость в find
в сочетании с grep
.