diff options
Diffstat (limited to 'contrib/getent')
-rw-r--r-- | contrib/getent | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/contrib/getent b/contrib/getent index ec49e2e7..54e62ab8 100644 --- a/contrib/getent +++ b/contrib/getent @@ -6,8 +6,7 @@ _getent() local cur prev COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} + _get_comp_words_by_ref cur prev case $prev in passwd) @@ -27,13 +26,13 @@ _getent() return 0 ;; protocols|networks|ahosts|ahostsv4|ahostsv6|rpc) - COMPREPLY=( $( getent "$prev" | \ - sed -ne 's|^\('"$cur"'[^[:space:]]*\).*|\1|p' ) ) + COMPREPLY=( $( compgen -W "$( getent "$prev" | \ + awk '{ print $1 }' )" -- "$cur" ) ) return 0 ;; aliases|shadow) - COMPREPLY=( $( getent "$prev" | \ - sed -ne 's|^\('"$cur"'[^:]*\).*|\1|p' ) ) + COMPREPLY=( $( compgen -W "$( getent "$prev" | cut -d: -f1 )" \ + -- "$cur" ) ) return 0 ;; esac |