#compdef newgrp groupdel local expl groups tmp _tags groups || return 1 if ! zstyle -a ":completion:${curcontext}:" groups groups; then (( $+_cache_groups )) || if (( ${+commands[getent]} )); then : ${(A)_cache_groups:=${${(s: :)$(_call_program groups getent group 2>/dev/null)}%%:*}} else : ${(A)_cache_groups:=${${${(s: :)$(/dev/null); then _cache_groups+=( ${${(f)tmp}%%:*} ) # If you use YP fi fi groups=( "$_cache_groups[@]" ) fi _wanted groups expl group compadd "$@" -a groups