[Bash-completion-devel] Bug#734095: bash-completion: Please replace 'grep' with 'command grep' within several functions.

Tomasz Nowiński fxtmj at jadamspam.pl
Fri Jan 3 17:59:23 UTC 2014


Package: bash-completion
Version: 1:2.1-2
Severity: normal

Hi,

In my shell I have defined a custom "grep" function that overrides the original
command. If I try to use make in directory without Makefile or with some
makefiles, i get error from grep "grep: conflicting matchers specified",
because my grep uses -E.

Replacement 'grep' with 'command grep'

144c144
<         local reset=$( set +o | grep -F posix ); set +o posix # for <(...)
---
>         local reset=$( set +o | command grep -F posix ); set +o posix # for
<(...)

resolves the problem.

This is not only example of using grep not directly from it's path:

 $ grep '\<grep '  /usr/share/bash-completion/completions/*| grep -v '(command\
|\.)grep'
/usr/share/bash-completion/completions/c++:    cc  --version 2>/dev/null | grep
-q GCC && complete -F _gcc cc  || :
/usr/share/bash-completion/completions/c++:    c++ --version 2>/dev/null | grep
-q GCC && complete -F _gcc c++ || :
/usr/share/bash-completion/completions/cc:    cc  --version 2>/dev/null | grep
-q GCC && complete -F _gcc cc  || :
/usr/share/bash-completion/completions/cc:    c++ --version 2>/dev/null | grep
-q GCC && complete -F _gcc c++ || :
/usr/share/bash-completion/completions/colormake:        local reset=$( set +o
| grep -F posix ); set +o posix # for <(...)
/usr/share/bash-completion/completions/dict:        # it down with grep if $cur
looks like something that's safe to embed
/usr/share/bash-completion/completions/g++:    cc  --version 2>/dev/null | grep
-q GCC && complete -F _gcc cc  || :
/usr/share/bash-completion/completions/g++:    c++ --version 2>/dev/null | grep
-q GCC && complete -F _gcc c++ || :
/usr/share/bash-completion/completions/g77:    cc  --version 2>/dev/null | grep
-q GCC && complete -F _gcc cc  || :
/usr/share/bash-completion/completions/g77:    c++ --version 2>/dev/null | grep
-q GCC && complete -F _gcc c++ || :
/usr/share/bash-completion/completions/gcc:    cc  --version 2>/dev/null | grep
-q GCC && complete -F _gcc cc  || :
/usr/share/bash-completion/completions/gcc:    c++ --version 2>/dev/null | grep
-q GCC && complete -F _gcc c++ || :
/usr/share/bash-completion/completions/gcj:    cc  --version 2>/dev/null | grep
-q GCC && complete -F _gcc cc  || :
/usr/share/bash-completion/completions/gcj:    c++ --version 2>/dev/null | grep
-q GCC && complete -F _gcc c++ || :
/usr/share/bash-completion/completions/gmake:        local reset=$( set +o |
grep -F posix ); set +o posix # for <(...)
/usr/share/bash-completion/completions/gnumake:        local reset=$( set +o |
grep -F posix ); set +o posix # for <(...)
/usr/share/bash-completion/completions/gpc:    cc  --version 2>/dev/null | grep
-q GCC && complete -F _gcc cc  || :
/usr/share/bash-completion/completions/gpc:    c++ --version 2>/dev/null | grep
-q GCC && complete -F _gcc c++ || :
/usr/share/bash-completion/completions/lintian:    tags=$( grep -e ^Tag
/usr/share/lintian/checks/*.desc | cut -d\  -f2 )
/usr/share/bash-completion/completions/lintian:            match=$(grep -nE
"^Tag: $item$" /usr/share/lintian/checks/*.desc \
/usr/share/bash-completion/completions/lintian:    checks=$(grep -e ^Check-
Script -e ^Abbrev \
/usr/share/bash-completion/completions/lintian:            match=$(grep -nE
"^(Check-Script|Abbrev): $item$" \
/usr/share/bash-completion/completions/lintian:            todisable=$(grep -e
^Check-Script -e ^Abbrev $match | \
/usr/share/bash-completion/completions/lintian:    infos=$(grep -e ^Collector
/usr/share/lintian/collection/*.desc \
/usr/share/bash-completion/completions/lintian:            match=$( grep -nE
"^Collector: $item$" \
/usr/share/bash-completion/completions/lintian-info:    tags=$( grep -e ^Tag
/usr/share/lintian/checks/*.desc | cut -d\  -f2 )
/usr/share/bash-completion/completions/lintian-info:            match=$(grep
-nE "^Tag: $item$" /usr/share/lintian/checks/*.desc \
/usr/share/bash-completion/completions/lintian-info:    checks=$(grep -e
^Check-Script -e ^Abbrev \
/usr/share/bash-completion/completions/lintian-info:            match=$(grep
-nE "^(Check-Script|Abbrev): $item$" \
/usr/share/bash-completion/completions/lintian-info:
todisable=$(grep -e ^Check-Script -e ^Abbrev $match | \
/usr/share/bash-completion/completions/lintian-info:    infos=$(grep -e
^Collector /usr/share/lintian/collection/*.desc \
/usr/share/bash-completion/completions/lintian-info:            match=$( grep
-nE "^Collector: $item$" \
/usr/share/bash-completion/completions/make:        local reset=$( set +o |
grep -F posix ); set +o posix # for <(...)
/usr/share/bash-completion/completions/pkgadd:
pkginst_list=$(strings $(dequote $device) | grep "^PKG=" | sort -u | cut -d=
-f2)
/usr/share/bash-completion/completions/pmake:        local reset=$( set +o |
grep -F posix ); set +o posix # for <(...)
/usr/share/bash-completion/completions/rdict:        # it down with grep if
$cur looks like something that's safe to embed
/usr/share/bash-completion/completions/slackpkg:# options list is based on
`grep '\-.*\=.*)' /usr/sbin/slackpkg | cut -f1 -d\)`
/usr/share/bash-completion/completions/slackpkg:                grep "^$cur" )
)
/usr/share/bash-completion/completions/slackpkg:                grep "^$cur" )
)

Regards
TN



-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (491, 'unstable'), (490, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.12-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages bash-completion depends on:
ii  bash  4.2+dfsg-1
ii  dpkg  1.17.5

bash-completion recommends no packages.

bash-completion suggests no packages.

-- debconf-show failed



More information about the Bash-completion-devel mailing list