# usermod(8) completion -*- shell-script -*- _usermod() { local cur prev words cword split _init_completion -s || return # TODO: if -o/--non-unique is given, could complete on existing uids # with -u/--uid case $prev in --comment | --home | --expiredate | --inactive | --help | --login | --password | \ --uid | --selinux-user | -!(-*)[cdefhlpuZ]) return ;; --gid | -!(-*)g) _gids COMPREPLY=($(compgen -W '${COMPREPLY[@]} $(compgen -g)' \ -- "$cur")) return ;; --groups | -!(-*)G) local prefix= [[ $cur == *,* ]] && prefix="${cur%,*}," COMPREPLY=($(compgen -g -- "${cur##*,}")) ((${#COMPREPLY[@]} == 1)) && COMPREPLY=(${COMPREPLY/#/$prefix}) return ;; --root | -!(-*)R) _filedir -d return ;; --shell | -!(-*)s) _shells return ;; esac $split && return if [[ $cur == -* ]]; then # TODO: -U/--unlock, -p/--password, -L/--lock mutually exclusive COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) return fi COMPREPLY=($(compgen -u -- "$cur")) } && complete -F _usermod usermod # ex: filetype=sh